如何在VB中逐像素生成一个bmp文件?
已有一个二维数组DimP(255,255)AsByte它的具体数值已经计算好了。现要求生成一个256*256的bmp图片,而P(x,y)就是它的(x,y)位置的像素的亮度...
已有一个二维数组
Dim P(255, 255) As Byte
它的具体数值已经计算好了。现要求生成一个256*256的bmp图片,而P(x, y)就是它的(x, y)位置的像素的亮度(从黑到白),生成后直接储存到“D:\”中。
因为实际生成的图片很大,所以要求不能在PictureBox中用Graphic方法绘图,而是直接按源代码生成并储存。该怎么办? 展开
Dim P(255, 255) As Byte
它的具体数值已经计算好了。现要求生成一个256*256的bmp图片,而P(x, y)就是它的(x, y)位置的像素的亮度(从黑到白),生成后直接储存到“D:\”中。
因为实际生成的图片很大,所以要求不能在PictureBox中用Graphic方法绘图,而是直接按源代码生成并储存。该怎么办? 展开
展开全部
Private Type BMP_File_Header
fileType As Integer
fileLength As Long
reserve As Long
offset As Long
End Type
Private Type BMP_Info_Header
infoLength As Long
width As Long
height As Long
plane As Integer
pixBits As Integer
compress As Long
dataLength As Long
H_res As Long
V_res As Long
colorNumber As Long
impColor As Long
End Type
Private Sub Form_Load()
Dim bfh As BMP_File_Header
Dim bih As BMP_Info_Header
Dim ct(3, 255) As Byte
Dim P(255, 255) As Byte
Dim i As Long, j As Long
bfh.fileType = &H4D42
bfh.offset = Len(bfh) + Len(bih) + 4 * 256
bih.dataLength = &H100& * &H100&
bfh.fileLength = bfh.offset + bih.dataLength '图片文件大小
bih.infoLength = Len(bih)
bih.width = 256 '图片宽度
bih.height = 256 '图片高度
bih.plane = 1
bih.pixBits = 8 '每像素位数
bih.compress = 0
bih.H_res = &HB12
bih.V_res = &HB12
bih.colorNumber = 256
bih.impColor = 0
For i = 0 To 255 '产生256级的灰度调色板
ct(0, i) = i
ct(1, i) = i
ct(2, i) = i
ct(3, i) = 0
Next
For j = 0 To 255 '这里是生成一个256*256的位图数据,你有现成的数据就可直接用
For i = 0 To 255
P(i, j) = i
Next
Next
Open "d:\test.bmp" For Binary As #1
Put #1, , bfh
Put #1, , bih
Put #1, , ct
Put #1, , P
Close #1
MsgBox "OK"
End Sub
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询