From ab7682178796a37c38aa3149f47d3e8193e08e29 Mon Sep 17 00:00:00 2001 From: Tj Holowaychuk Date: Mon, 29 Nov 2010 09:40:40 -0800 Subject: [PATCH] pre-multiply putImageData() components --- src/CanvasRenderingContext2d.cc | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/CanvasRenderingContext2d.cc b/src/CanvasRenderingContext2d.cc index 5b15bd6..8c68473 100644 --- a/src/CanvasRenderingContext2d.cc +++ b/src/CanvasRenderingContext2d.cc @@ -459,12 +459,13 @@ Context2d::PutImageData(const Arguments &args) { uint8_t r = srcRows[bx + 0]; uint8_t g = srcRows[bx + 1]; uint8_t b = srcRows[bx + 2]; + float alpha = (float) a / 255; // ARGB *pixel = a << 24 - | r << 16 - | g << 8 - | b; + | (int)((float) r * alpha) << 16 + | (int)((float) g * alpha) << 8 + | (int)((float) b * alpha); } srcRows += srcStride; }