diff options
| -rw-r--r-- | src/Fl_Image.cxx | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/Fl_Image.cxx b/src/Fl_Image.cxx index 7d1643f56..08e539288 100644 --- a/src/Fl_Image.cxx +++ b/src/Fl_Image.cxx @@ -316,7 +316,6 @@ Fl_Image *Fl_RGB_Image::copy(int W, int H) { memcpy(downleft, array + dlefty * line_d + dleftx * d(), d()); memcpy(downright, array + drighty * line_d + drightx * d(), d()); - // TODO: how to check if it's premultiplied alpha? int i; if (d() == 4) { for (i = 0; i < 3; i++) { @@ -338,6 +337,12 @@ Fl_Image *Fl_RGB_Image::copy(int W, int H) { (downleft[i] * leftf + downright[i] * rightf) * downf; } + + if (d() == 4) { + for (i = 0; i < 3; i++) { + new_ptr[i] /= new_ptr[3] / 255.0f; + } + } } } } |
