Hoi,
ik heb een bestand, wat een BMP file is alleen zonder de header, die meot ik zelf nog toevoegen. Maar het gaat verkeerd...
goed dat is het wegschrijf stukje. dat doe ik dus. Theoretisch zou er dus in het bestand staan: 1977820504001078 ofzo met het juiste aantal posities aangezien de write functie het juiste aantal bytes doorschuift met de pointer...
dan het inlezen
Als ik dit doe heeft bfType de juiste waarde nl. 19778, maar de bfSize een heeeele grote waarde. Als ik nu van die 32 een 16 maak en de regel erna uncomment, dan heeft bfSize wel de juiste waarde... maar bfOffBits nog steeds niet...
schrijf ik dit verkeerd weg ofzo? echt heel vaag. Ik moet echt een header kunnen schrijven anders kun je die bmp niet bekijken...!
ik heb een bestand, wat een BMP file is alleen zonder de header, die meot ik zelf nog toevoegen. Maar het gaat verkeerd...
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
| Dim bmpHeader As BITMAPFILEHEADER
Dim fs2 As FileStream = New FileStream("d:\test3.bmp", FileMode.Create)
Dim writer As BinaryWriter = New BinaryWrit
'De BITMAPFILEHEADER STRUCTURE...
'Dim bfType As Integer
'Dim bfSize As Long
'Dim bfReserved1 As Integer
'Dim bfReserved2 As Integer
'Dim bfOffBits As Long
With bmpHeader
.bfType = 19778
.bfSize = bmp.Length ' is iets van 20504 bytes
.bfReserved1 = 0
.bfReserved2 = 0
.bfOffBits = 1078
End With
' bmp is een array van bytes wat de inhoud is van de file maar verder nu niet interessant
'wegschrijven...
writer.Write(bmpHeader.bfType)
writer.Write(bmpHeader.bfSize)
writer.Write(bmpHeader.bfReserved1)
writer.Write(bmpHeader.bfReserved2)
writer.Write(bmpHeader.bfOffBits) |
goed dat is het wegschrijf stukje. dat doe ik dus. Theoretisch zou er dus in het bestand staan: 1977820504001078 ofzo met het juiste aantal posities aangezien de write functie het juiste aantal bytes doorschuift met de pointer...
dan het inlezen
code:
1
2
3
4
5
6
| bmpHeader.bfType = reader.ReadInt16()
bmpHeader.bfSize = reader.ReadInt32()
' bmpHeader.bfSize = reader.ReadInt16() **
bmpHeader.bfReserved1 = reader.ReadInt16()
bmpHeader.bfReserved2 = reader.ReadInt16()
bmpHeader.bfOffBits = reader.ReadInt32() |
Als ik dit doe heeft bfType de juiste waarde nl. 19778, maar de bfSize een heeeele grote waarde. Als ik nu van die 32 een 16 maak en de regel erna uncomment, dan heeft bfSize wel de juiste waarde... maar bfOffBits nog steeds niet...
schrijf ik dit verkeerd weg ofzo? echt heel vaag. Ik moet echt een header kunnen schrijven anders kun je die bmp niet bekijken...!