在VB中一个PICTURE框是与设备有关的,即当前颜色深度是16位色则PICTURE框也是16位色,无法脱离与设备的关系,我想做到的是:从文件(BMP,JPG)或者图像控件,创建一个与设备无关的DC(即可以自定义颜色深度)的DC。或者让PICTURE框可以自定义颜色深度?请问该如何做到?

解决方案 »

  1.   

    另外一个问题:
    1,面对不同色深的当前显示模式,我就不得不使用不同的分色算法(转换成rgb分量)。
    2,如果当前显示模式是8位色或16位色,用LoadPicture函数打开图片到picture框,再用savepicture方法保存图片就会造成颜色损失。我想的解决方法是把图片打开到一个与设备无关的对象中去,以32位色位图保存,需要显示时复制到PICTURE中去,PICTURE中显示的只是一个副本,修改后、保存的仍然是32位的位图,这样就不会造成颜色的丢失。但是如果这样做的话,就无法读取.JPG 文件了,(我不知道如何不用Picture来读取.jpg文件)。另外还有什么方法读取.jpg文件(不用picture),保存.jpg(并按用户要求的图像质量保存)
      

  2.   

    这需要研究.jpg文件的结构了。现在我感到一些程序员对声音、图像的内部结构、显示(发声)的机理还不是很熟悉的,大多还是借助老外的API、控件等做些“表面文章”。找点这方面的书看看,当然得把数学这玩意学习好了。