Browse Source

pre-multiply putImageData() components

v1.x
Tj Holowaychuk 14 years ago
parent
commit
ab76821787
  1. 7
      src/CanvasRenderingContext2d.cc

7
src/CanvasRenderingContext2d.cc

@ -459,12 +459,13 @@ Context2d::PutImageData(const Arguments &args) {
uint8_t r = srcRows[bx + 0]; uint8_t r = srcRows[bx + 0];
uint8_t g = srcRows[bx + 1]; uint8_t g = srcRows[bx + 1];
uint8_t b = srcRows[bx + 2]; uint8_t b = srcRows[bx + 2];
float alpha = (float) a / 255;
// ARGB // ARGB
*pixel = a << 24 *pixel = a << 24
| r << 16 | (int)((float) r * alpha) << 16
| g << 8 | (int)((float) g * alpha) << 8
| b; | (int)((float) b * alpha);
} }
srcRows += srcStride; srcRows += srcStride;
} }

Loading…
Cancel
Save