【发布时间】:2014-06-16 19:52:05
【问题描述】:
所以在 WinXP 上,我一直很难将 PNG 文件转换为带有画布的 ICO。我找到了这个方法encodeImage。我不知道它是否有效,但它看起来很有希望,但我不知道如何将我在画布上绘制的图像输入imgITools.decodeData。
aImageStream 和/或aMimeType 应该使用什么?
imgTools.decodeImageData(aImageStream, aMimeType, imgContainer);
这是我的更多代码:
img['asdf'].file = new FileUtils.File(myPathHere);
let iconStream;
try {
let imgTools = Cc["@mozilla.org/image/tools;1"]
.createInstance(Ci.imgITools);
let imgContainer = { value: null };
imgTools.decodeImageData(aImageStream, aMimeType, imgContainer);
iconStream = imgTools.encodeImage(imgContainer.value,
"image/vnd.microsoft.icon",
"format=bmp;bpp=32");
} catch (e) {
alert('failure converting icon ' + e)
throw("processIcon - Failure converting icon (" + e + ")");
}
let outputStream = FileUtils.openSafeFileOutputStream(img['asdf'].file);
NetUtil.asyncCopy(iconStream, outStream, netutilCallback);
【问题讨论】:
标签: javascript canvas firefox-addon xpcom