关于透明图片的输出
这个是在群里讨论D做的纸娃娃系统怎样输出背景透明的图片的一些实验结果,因为kr输出的bmp图片是有通道的,所以只要输出图片的那个层是背景透明的,输出的东西就是背景透明的,目前D是用pilecopy输出baselayer,因为所有layer是基于baselayer建立的,所以可以一次输出所有图层内容在一张图片上,但是问题在于baselayer背景肯定是实心的。
我实验了下,通过依序把所有图层的信息用operateRect覆盖到一个templayer上可以实现背景透明的图片输出,代码如下:
function test()
{
var temp = new Layer(kag, kag.fore.base);
temp.setImageSize(800, 600);
temp.operateRect(0, 0, kag.fore.layers[6], 0, 0, 800, 600);
temp.operateRect(0, 0, kag.fore.layers[7], 0, 0, 800, 600);
temp.operateRect(0, 0, kag.fore.layers[8], 0, 0, 800, 600);
var pa = System.exePath + "/out/ss.bmp";
//我只是实验,就规定了导出图片名……
temp.saveLayerImage(pa, "bmp");
}
输出的bmp32因为是带通道的,可以直接在kr里使用
|