我想把一个01的二维数组写到BMP中,可是写出来的BMP图象的行列和数组的行列不等啊,BMP图象相对于二维数组少了几行和几列,这个问题应该是出在哪里啊?

解决方案 »

  1.   

    bmp文件标准格式的资料先熟悉一下。
    文件头部分我就不说了。
    在他的颜色信息部分中,并不是简单的RGBRGBRGB...这样排列的。
    如果我没有记错,应该是:
    GRBGRBGRB000

    详细说:先按一行的每点3色,按grb排列(还是gbr?),一行排完后,再补0,补1-3个0 ,让这一行的数据个数能被4整除,比如3个点,9个数据,就要补3个0。
    然后记录排下一行。这个应该是直接读写bmp文件常常遇到的问题。
      

  2.   

    代码如下:Dim filename As String
    CommonDialog2.Filter = "(*.bmp;*.jpg)|*.bmp;*.jpg"
    CommonDialog2.ShowSave
    If Len(CommonDialog2.filename) = 0 Then Exit Sub
    filename = CommonDialog2.filename
    CommonDialog2.CancelError = TruePicture1.Cls
    Picture1.Height = dem_y
    Picture1.Width = dem_x
    Picture1.ScaleHeight = dem_y
    Picture1.ScaleWidth = dem_x
    For jj = 0 To dem_y - 1
        For ii = 0 To dem_x - 1
            Picture1.PSet (ii, jj), RGB((1 - dem_river(ii, jj)) * 255, (1 - dem_river(ii, jj)) * 255, (1 - dem_river(ii, jj)) * 255)
        Next ii
    Next jj
    SavePicture Picture1.Image, filename     '保存图片
    请问有何问题吗?
      

  3.   

    上面的程序中我用了一个例子dem_x=51,dem_y=63
    而生成的图象行列却是47,59
      

  4.   

    请参考在各种情况下的bmp文件的数据格式:
    http://www.zahui.com/html/3/6637.htm