大香港1957txt下载,五洲直播,田纪云之子
cimage类中getpixeladdress()函数来设置获取对应的颜色值是发现alpha无效。
void cgbimage::load(){
cimage sourceimage;
sourceimage.load(l"c:\\users\\ju'k\\desktop\\cgaussblur\\1.png");
int bpp = sourceimage.getbpp();
int width = sourceimage.getwidth();
int height = sourceimage.getheight();
cimage newimage;
newimage.create(width,height,32);
for(int w = 0; w < width;w++){
for(int h = 0; h < height;h++){
if(w == 20 && h == 20){
int xx = 0;
}
byte* buffer = (byte*)sourceimage.getpixeladdress(w,h);
byte b = buffer[0];
byte g = buffer[1];
byte r = buffer[2];
byte a = buffer[3];
byte* newbuffer = (byte*)newimage.getpixeladdress(w,h);
newbuffer[0] = b;
newbuffer[1] = g;
newbuffer[2] = r;
newbuffer[3] = a;
}
}
clsid pngclsid;
getencoderclsid(_t("image/png"), &pngclsid);
newimage.save(l"c:\\users\\ju'k\\desktop\\cgaussblur\\1_1.png");
}
不管 newbuffer[3] = a; 如何设置 newimage始终无法透明。
这里要注意的是
newimage.create(width,height,32);
这里第三个函数一定要设置为32
第四个函数这里是默认的为0,应该设置为cimage::createalphachannel。
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
如何在没有core文件的情况下用dmesg+addr2line定位段错误
用QT制作3D点云显示器——QtDataVisualization
网友评论