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 画出来的图,始终是黑的,我是希望图像的右下角变成白色。
求高人解答!

解决方案 »

  1.   

    晕,估计你是理解错误..能操作能显示到屏幕的都是BITMAP,其它的只是一种文件格式.
    你最多只能操作bmp后,把它转(压缩)为PNG格式,或者把其它的文件格式转(解压)为BMP后再操作.
    你根本不可能直接操作(压缩)数据,顾名思义,那是压缩的,不解压的话,根本就不知道它代表着什么,更别说还要操作它了.
      

  2.   

    last : 你能做的就是,用CxImage create()一个bmp,然后操作完转为png~
      

  3.   

    CRect rect(20,25,320,240);
    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的值啊。
      

  4.   


    实际上你看看它的代码就知道了,当用Load()的时候,已经把png格式的解压为bmp了,其它的操作(包括显示实)际上是在bmp上操作..当操作完保存时,又要把操作后的bmp转换回png..
    别以为用它的函数就是在操作png数据,实际上是经过了N步后的所得(间接的)。know?
    所以实际上你的问题解决方法:就是用CxImage create个bmp,操作完后把它转为png