我有一个二维数组数据为Single,想这个数组保存为一BMP图,数组对应象素位置。如DataArray[2,4]对应BMP图上象素点[2,4],同时,当鼠标放在BMP图上是,就会显示该象素点对应的数组的值。

解决方案 »

  1.   

    你是想二维数组直接生成BMP图片,不是很容易,得按不同类型格式的BMP文件来写。最好能给出个更具体一点BMP格式要求。
    你这个二维数组存的是什么呀?是颜色吗?
      

  2.   

    二维数组保存的是一个Single型的数据,BMP图保存为24位的灰度图。把二维数组上存的数据分为256个等份,看数组上的数据落在哪范围就取其值作为BMP图的RGB三分量值,最大的困难是怎么把数组上的的值保存到BMP图上去。如DataArray[2,3]=23.33,怎么把23.33保存到BMP图的象素点[2,3]上面去,让鼠标停在点[2,3]上时可以取的其值。
      

  3.   

    不是没经过验证的想法:
      Delphi 本身有持久化系列,他可以让你在软件运行时更改某个控件的属性,不可以在退出后仍然保存着。你想如果是一些像素呢。也应该可以吧
      

  4.   

    Delphi中Image有PictureData属性,也是用数组形式保存的,你可以看看
      

  5.   

    我用的Delphi6,没有找到Image有PictureData属性啊?
      

  6.   

    ////如DataArray[2,3]=23.33,怎么把23.33保存到BMP图的象素点[2,3]上面去
    用Bmp的Scanline呀,
      

  7.   

    ////如DataArray[2,3]=23.33,怎么把23.33保存到BMP图的象素点[2,3]上面去
    用Bmp的Scanline呀,
    用Scanline只能得到象素点的颜色信息,怎么保存数据呢?数据是Single型,不能当做颜色。
      

  8.   

    --------用Scanline只能得到象素点的颜色信息,怎么保存数据呢?数据是Single型,不能当做颜色。Scanline也可以保存数据,不过肯定是byte型的。觉得还是没有太明白你的意思,不知你要存图,还是存single的数组。
      

  9.   

    我現在手頭沒有BMP有資料,我想是否可以這樣?
    在BMP的文件頭上做文章
    在我的印象當中,BMP有一個指針,指著其256調色板的位置,
    然後是數據的位置,我們只要把那個指針指後一點,
    然後在那個擴充的地方保存我們的東西,不知道行不行
      

  10.   

    我現在手頭沒有BMP有資料,我想是否可以這樣?
    在BMP的文件頭上做文章
    在我的印象當中,BMP有一個指針,指著其256調色板的位置,
    然後是數據的位置,我們只要把那個指針指後一點,
    然後在那個擴充的地方保存我們的東西,不知道行不行不知道怎么做啊,可以给些代码吗??