如何将任意格式的图片转换成如下形式并保存
格式是:DB 120 140
也就是说用文本文件存储图片的像素数据。

解决方案 »

  1.   

    你先了解一下BMP的头、文件信息。再读出来转成文本。不过这样有意义吗?你的读取速度肯定不如人家快阿。
      

  2.   

    如果效率要求不是很高,用picturebox.autosize=true
    然后打开图片,再取picturebox的高度宽度,是不是还要转换不知道,先试试吧
      

  3.   

    比较傻瓜的方法:
    放2 个pictureBox,第2个picturebox 设置为 120 * 140 大小
    将picture1的图片缩放到picture2上Picture2.AutoRedraw = True
    Picture2.PaintPicture Picture1.Picture, 0, 0, Picture2.ScaleWidth, Picture2.ScaleHeight保存 picture2 上的图片
    SavePicture Picture2.Image, "c:\11.bmp"
      

  4.   

    DB 120 140?这是什么东东?如果是任意格式的,可以用picturebox打开,然后CreateDIBSection,然后SelectObject,再bitblt,然后映射到数组里,再按你的格式存就可以了
      

  5.   

    只是要图片的长和宽度的像素,不是要整个图片,当然不需要“CreateDIBSection,然后SelectObject,再bitblt,然后映射到数组里“www.21code.com中好像有个例子是打开多种格式图片的,你去找找看
      

  6.   

    ......
    你是要保存任意格式得文件吗?这2个过程是读入任何文件为 byte ,把byte 写入任何文件Public Function LoadFile(ByVal FileName As String) As Byte()
        Dim FileNo As Integer, b() As Byte
        On Error GoTo Err_Init
        If Dir(FileName, vbNormal Or vbArchive) = "" Then
            Exit Function
        End If
        FileNo = FreeFile
        Open FileName For Binary Access Read As #FileNo
        ReDim b(0 To LOF(FileNo) - 1)
        Get #FileNo, , b
        Close #FileNo
        LoadFile = b
        
        Erase b
        Exit Function
    Err_Init:
        MsgBox Err.Number & " - " & Err.Description
    End FunctionPublic Function WriteFile(b() As Byte, FileName As String) As Long
        On Error GoTo Err_Init
        WriteFile = 0
        If Dir(FileName, vbNormal Or vbArchive) <> "" Then
            Kill FileName
        End If
        
        
        Open FileName For Binary As #1
        
        Put #1, , b()
        Close #1
        Erase b
        Exit Function
    Err_Init:
        
        WriteFile = Err.Number
    End Function
      

  7.   

    fileNo 是什么/是文件编号吗还是在资源管理器中的编号
      

  8.   

    FileNo 就是文件号: 1,2,3,4,。。
    没什么具体意义,如果你连这个都不知道,建议你看VB的帮助