Fix handling of RGBA buffers in CalRGB colorspace (issue 5270)

This commit is contained in:
Jonas Jenwald 2014-09-08 12:26:32 +02:00
parent 1d9dc37337
commit 007d7b2d95

View File

@ -1080,20 +1080,21 @@ var CalRGBCS = (function CalRGBCSClosure() {
convertToRgb(this, src, srcOffset, dest, destOffset, 1); convertToRgb(this, src, srcOffset, dest, destOffset, 1);
}, },
getRgbBuffer: function CalRGBCS_getRgbBuffer(src, srcOffset, count, getRgbBuffer: function CalRGBCS_getRgbBuffer(src, srcOffset, count,
dest, destOffset, bits) { dest, destOffset, bits,
alpha01) {
var scale = 1 / ((1 << bits) - 1); var scale = 1 / ((1 << bits) - 1);
for (var i = 0; i < count; ++i) { for (var i = 0; i < count; ++i) {
convertToRgb(this, src, srcOffset, dest, destOffset, scale); convertToRgb(this, src, srcOffset, dest, destOffset, scale);
srcOffset += 3; srcOffset += 3;
destOffset += 3; destOffset += 3 + alpha01;
} }
}, },
getOutputLength: function CalRGBCS_getOutputLength(inputLength) { getOutputLength: function CalRGBCS_getOutputLength(inputLength, alpha01) {
return inputLength; return (inputLength * (3 + alpha01) / 3) | 0;
}, },
isPassthrough: ColorSpace.prototype.isPassthrough, isPassthrough: ColorSpace.prototype.isPassthrough,
createRgbBuffer: ColorSpace.prototype.createRgbBuffer, fillRgb: ColorSpace.prototype.fillRgb,
isDefaultDecode: function CalRGBCS_isDefaultDecode(decodeMap) { isDefaultDecode: function CalRGBCS_isDefaultDecode(decodeMap) {
return ColorSpace.isDefaultDecode(decodeMap, this.numComps); return ColorSpace.isDefaultDecode(decodeMap, this.numComps);
}, },