diff options
| author | Albrecht Schlosser <albrechts.fltk@online.de> | 2016-08-09 15:20:54 +0000 |
|---|---|---|
| committer | Albrecht Schlosser <albrechts.fltk@online.de> | 2016-08-09 15:20:54 +0000 |
| commit | e7b9e77ba5ab877eb5f8b56da7fe1bf7b0aac3aa (patch) | |
| tree | 1878338752665890d19922fd711639a4aafe00ca /src | |
| parent | 78d853891c145776e19e412b4956fed87a33bf60 (diff) | |
Fix typos, separate local variables of image scaling algorithms.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11869 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'src')
| -rw-r--r-- | src/Fl_Bitmap.cxx | 2 | ||||
| -rw-r--r-- | src/Fl_Image.cxx | 35 | ||||
| -rw-r--r-- | src/Fl_Pixmap.cxx | 2 |
3 files changed, 20 insertions, 19 deletions
diff --git a/src/Fl_Bitmap.cxx b/src/Fl_Bitmap.cxx index 4d637548a..c2f5e22c2 100644 --- a/src/Fl_Bitmap.cxx +++ b/src/Fl_Bitmap.cxx @@ -189,7 +189,7 @@ Fl_Image *Fl_Bitmap::copy(int W, int H) { xstep, ystep; // X & Y step increments - // Figure out Bresenheim step/modulus values... + // Figure out Bresenham step/modulus values... xmod = w() % W; xstep = w() / W; ymod = h() % H; diff --git a/src/Fl_Image.cxx b/src/Fl_Image.cxx index c048d57c3..2fc389c86 100644 --- a/src/Fl_Image.cxx +++ b/src/Fl_Image.cxx @@ -63,7 +63,6 @@ void Fl_Image::draw(int XP, int YP, int, int, int, int) { draw_empty(XP, YP); } - /** The protected method draw_empty() draws a box with an X in it. It can be used to draw any image that lacks image @@ -324,31 +323,33 @@ Fl_Image *Fl_RGB_Image::copy(int W, int H) { } if (W <= 0 || H <= 0) return 0; - // OK, need to resize the image data; allocate memory and + // OK, need to resize the image data; allocate memory and create new image uchar *new_ptr; // Pointer into new array const uchar *old_ptr; // Pointer into old array - int c, // Channel number - sy, // Source coordinate - dx, dy, // Destination coordinates - xerr, yerr, // X & Y errors - xmod, ymod, // X & Y moduli - xstep, ystep, // X & Y step increments - line_d; // stride from line to line - - - // Figure out Bresenheim step/modulus values... - xmod = w() % W; - xstep = (w() / W) * d(); - ymod = h() % H; - ystep = h() / H; - line_d = ld() ? ld() : w() * d(); + int dx, dy, // Destination coordinates + line_d; // stride from line to line // Allocate memory for the new image... new_array = new uchar [W * H * d()]; new_image = new Fl_RGB_Image(new_array, W, H, d()); new_image->alloc_array = 1; + line_d = ld() ? ld() : w() * d(); + if (Fl_Image::RGB_scaling() == FL_RGB_SCALING_NEAREST) { + + int c, // Channel number + sy, // Source coordinate + xerr, yerr, // X & Y errors + xmod, ymod, // X & Y moduli + xstep, ystep; // X & Y step increments + + // Figure out Bresenham step/modulus values... + xmod = w() % W; + xstep = (w() / W) * d(); + ymod = h() % H; + ystep = h() / H; + // Scale the image using a nearest-neighbor algorithm... for (dy = H, sy = 0, yerr = H, new_ptr = new_array; dy > 0; dy --) { for (dx = W, xerr = W, old_ptr = array + sy * line_d; dx > 0; dx --) { diff --git a/src/Fl_Pixmap.cxx b/src/Fl_Pixmap.cxx index 1b17aa9f4..68a70f50c 100644 --- a/src/Fl_Pixmap.cxx +++ b/src/Fl_Pixmap.cxx @@ -204,7 +204,7 @@ Fl_Image *Fl_Pixmap::copy(int W, int H) { sprintf(new_info, "%d %d %d %d", W, H, ncolors, chars_per_pixel); - // Figure out Bresenheim step/modulus values... + // Figure out Bresenham step/modulus values... xmod = w() % W; xstep = (w() / W) * chars_per_pixel; ymod = h() % H; |
