summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Fl_Image.cxx7
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;
+ }
+ }
}
}
}