当前位置: 移动技术网 > IT编程>开发语言>C/C++ > GetPixelAddress()函数Alpha通道会丢失

GetPixelAddress()函数Alpha通道会丢失

2019年01月23日  | 移动技术网IT编程  | 我要评论

大香港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。

 

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网