webp有黑边问题的解决办法

项目使用了webp,但我们处理完图片后,发现总是有黑边存在,后来发现了引擎中有一处写错了。
在CCImage.cpp的initWithWebpData函数中,将

config.output.colorspace = config.input.has_alpha?MODE_rgbA:MODE_RGB;

改成

if (PNG_PREMULTIPLIED_ALPHA_ENABLED) {
    config.output.colorspace = config.input.has_alpha?MODE_rgbA:MODE_RGB;
} else {
    config.output.colorspace = config.input.has_alpha?MODE_RGBA:MODE_RGB;
}

这样就没有黑边问题了。

1赞

这个帖子的问题遇到过没

http://forum.cocos.com/t/sprite/51888/1

应该是你混合模式设置错了

嗯,目测是有问题。
但是不应该用 PNG_PREMULTIPLIED_ALPHA_ENABLED 这个变量吧?
都有PNG_前缀呢,不是应该只用于PNG_预乘的么?

能否告知一下,是否有什么工具,可以转换png为webp,而且可以设置是否要预乘的参数?

1赞

TexturePacker 3.6以上试试.

mark:watermelon:

你们这个讨论出什么结果了没