Automattic/node-canvas
在 GitHub 查看Incorrect transparent GIF blending when it's transparent color is not black
Open
#116 创建于 2011年9月4日
BugHelp wantedImages & Formats: GIF
仓库指标
- Star
- (9,524 star)
- PR 合并指标
- (平均合并 34天 18小时) (30 天内合并 2 个 PR)
描述
The value of the color marked as transparent is not discarded, but blended with background using "add" operation if the background isn't transparent.
For example, here is an image that is transparent, but the color of the transparent index in it's palette is set to #804000:

var assert = require('assert')
var Canvas = require('canvas')
var c = new Canvas(150, 150)
var ctx = c.getContext('2d')
// fill background with something non-transparent
ctx.fillStyle = 'rgb(0, 100, 200)'
ctx.fillRect(0, 0, 150, 150)
// load the (supposedly) transparent gif
var i = new Canvas.Image()
i.src = 'transparent.gif' // https://i.imgur.com/XCz0eVi.gif
// draw it on top of our background
ctx.drawImage(i, 0, 0)
// expect no visible change in the canvas
var pixel = ctx.getImageData(0, 0, 1, 1).data
assert.deepEqual(pixel, [0, 100, 200, 255])