int pix = 0;
CxImage image1(200,100,8,CXIMAGE_FORMAT_PNG);
for (i =100;i< 200 ;i++)
{
for (j= 50;j< 100; j++)
{
image1.SetPixelIndex(i,j,255);
pix = image1.GetPixelGray(i,j);
}
}
image1.Draw(hdc,rect,NULL);有两个问题:1,pix 的值 始终等于0;
2,image1.Draw 画出来的图,始终是黑的,我是希望图像的右下角变成白色。
求高人解答!
CxImage image1(200,100,8,CXIMAGE_FORMAT_PNG);
for (i =100;i< 200 ;i++)
{
for (j= 50;j< 100; j++)
{
image1.SetPixelIndex(i,j,255);
pix = image1.GetPixelGray(i,j);
}
}
image1.Draw(hdc,rect,NULL);有两个问题:1,pix 的值 始终等于0;
2,image1.Draw 画出来的图,始终是黑的,我是希望图像的右下角变成白色。
求高人解答!
你最多只能操作bmp后,把它转(压缩)为PNG格式,或者把其它的文件格式转(解压)为BMP后再操作.
你根本不可能直接操作(压缩)数据,顾名思义,那是压缩的,不解压的话,根本就不知道它代表着什么,更别说还要操作它了.
if(image.Load(pictureName,CXIMAGE_FORMAT_PNG)){
image.Draw(hdc,rect,NULL);
}
for (i =250;i< 300 ;i++)
{
for (j= 90;j< 110; j++)
{
image.SetPixelIndex(i,j,255);
pix = image.GetPixelGray(i,j);
}
}
image.Draw(hdc,rect,NULL);
问题是这样的话:却可以设置Image的值啊。
实际上你看看它的代码就知道了,当用Load()的时候,已经把png格式的解压为bmp了,其它的操作(包括显示实)际上是在bmp上操作..当操作完保存时,又要把操作后的bmp转换回png..
别以为用它的函数就是在操作png数据,实际上是经过了N步后的所得(间接的)。know?
所以实际上你的问题解决方法:就是用CxImage create个bmp,操作完后把它转为png