如果我在程序中处理一张图片,载程序中得到一个byte数组,经过处理,我怎么能从byte数组转换成图片呢,但是我又不想用写文件的方法,再把byte数组写成一个文件放到硬盘上,再loadpicture,
有没有别的办法直接在我的exe中,得到图片,而不用再写回一个图片文件呢,谢谢各位帮忙!?

解决方案 »

  1.   

    byte数组是文件全部字节还是图像部份的内容
      

  2.   

    对于后者,SetBitmapBits 能!
      

  3.   

    那需要找出文件头部份信息,从中读出图像类型(如JPG、BMP、…)、图像参数(长、宽、调色板…),然而根据前面的分析来处理文件中图像部份数据。对于不同的图像类型,以上各图像信息都有可能不同,处理方法也各各有别。如果是bmp的(这是编码最简单的),也许俺还能帮上忙。如果你的图像数据不是保存在数据库中,而是直接放在图像文件中,建议最好是使用loadpicture(如果能够的话)加载到比如stdPicture或控件pictureBox等对象中,再行处理,这样你就省了极有挑战性的直接与各种图像文件编码规则打交道的一步。尔后可以用GetBitmapBit从加载了图像的对象中获取全部图像部份的信息,处理后用SetBitmapBits放回到图形对象中去。当然对对象中图像也可用setpixel或pset(较慢)等办法操作各个像素。