Salve amici!
Avrei bisogno di riuscire ad estrapolare dei dati da un file bitmap /(24 bit) 10 per 10 pixels (per ora) e cioè:
Aprire
Scartare Header
Tenere il descrittore dei colori
Per ogni pixel scrivere una stringa che descriva posizione x e y e "on" se il colore di questo è diverso da 0 (nero)
In poche parole fare un semplice Per chi lo sa fare..) parsing e dalla tripletta rgb
tipo:
...
Pixel 12 x2 y1 on
Pixel 13 x3 y1 on
Pixel 14 x4 y1 off
...
Pixel 46 x6 y4 on
...
il problema è la codifica che non è ascii
leggendo un po' su google ho letto di questo littel.endian che incasinano su tutto
Se solo riscissi a modificare il contenuto binario in una stringa dopo saprei cosa fare..
pensate sia possibile? ???
Masiddai!
Ecco la routine
Dim Testo As String
Dim Risultato As String
Dim Flg As String
Dim x, y As Integer
Dim xx, yy, somma As Integer
Dim im As Image
Dim xs, ys As String
im = Image.Load("/home/io/Scrivania/slice.bmp")
somma = 0
For x = 0 To im.W - 1
For y = 0 To im.h - 1
For yy = y To y + 10
somma = somma + im[x, yy]
If im[x, yy] = 0 Then
Flg = Flg & 0
Else
Flg = Flg & 1
Endif
Next
If somma > 0 Then
' Print "ci sono pixel colorati"
If Len(Str$(x)) = 1 Then xs = "00" & Str$(x)
If Len(Str$(x)) = 2 Then xs = "0" & Str$(x)
If Len(Str$(x)) = 3 Then xs = Str$(x)
If Len(Str$(y)) = 1 Then ys = "00" & Str$(y)
If Len(Str$(y)) = 2 Then ys = "0" & Str$(y)
If Len(Str$(y)) = 3 Then ys = Str$(y)
Risultato = Risultato & xs & " " & ys & " " & Flg & gb.NewLine
Else
' Print "non ci sono pixel colorati"
Endif
y = y + 9
somma = 0
Flg = ""
Next
Next
File.Save("/home/io/Scrivania/slice_mediaa.txt", Risultato)
TextArea1.text = Risultato
e questo è il risultato già filtrato dai dati inutili
000 260 00000011111
000 270 11111111111
000 280 11111111111
000 290 11111111111
000 300 11111111111
000 310 11111111111
001 000 11111111111
001 010 11111111111
001 020 11111111111
001 030 11110000000
001 260 00000011111
001 270 11111111111
001 280 11111111111
001 290 11111111111
001 300 11111111111
001 310 11111111111