Bild in Hex oder Dezimal konvertieren ?

Also ich kann ds jetzt so amchen wie ichdas will aber ich habe noch
folgendes problem:

Ich kann die Pixel nur auslesen wenn ich mit der Maus
drüberfahre.

Wie kann ich es anstellen das das programm automatisch
immer um ein Pixel weitergeht

Mfg. VbSpeed
 
Du machst dir zwei schleifen:
Code:
Dim X as Integer
Dim Y as Integer
 
 
 


For Y=1 To 64 '64 ist hier die Anzahl der Pixel in der Höhe deines BildesFor X=1 To 64 '64 ist hier die Anzahl der Pixel in der Breite deines BildesPixelAuslesen (X,Y) 'statt PixelAuslesen schreibst du deine Funktion zum Auslesen des Pixels hin.


Next

 

Next

Du musst allerdings beachten, dass X und Y nun als Pixelnummer zu verstehen sind und nicht die Koordinaten auf der PictureBox sind. Deshalb musst du evtl. "ScaleMode" auf "Pixel" stellen oder X,Y noch in Twips umrechnen (1 Millimeter = 56.7 Twips)
 
Hy,
Alles funktioniert aber es ist so langsam.
Ich hab das ganze in einen Timer getan
aber das braucht ewig für ein bild das
240x128 Pixel groß ist.

Wie kann i8ch das beschleunigen auf ein paar sekunden oder
sogar millisekunden

Weiß einer einen Rat

Mfg. VbSpeed
 
Könnte es sein dass es am code liegt

Der code um nur 1 Pixel auszulesen und in die
Textbox zu schreiben ist ca. 50 zeilen lang (Nur die zeilen mit Wörtern)

Hm wie aknn ich das verkürzen

Ich hab jetzt mal ein Bild das 128Pixel breit und 240 Pixel hoch war
konvertiert und das brauchte sicher so um die 2 minuten.
Das is mir zu lange wie kann ich das auf ein paar sekunden oder
besser noch kürzer beschleunigen

Bei 2 anderen programmen die das fast genauso machen wie meins geht's
auch viel viel schneller (0,5 - 1 Sekunde).

Also nochmal ! Wie kann man das so schnell beschleunigen !

Mfg. VbSpeed
 
Hallo Leute,
Ich weiss jetzt wie ich das schneller hinbekomme aber das will nicht
funktionieren und zwar mache ich das so:(Zuerst erläuterung das Problem ist weiter unten)

Ich habe zur probe eine Textbox gemacht(txtBit). Nach jedem Pixel
wird die um eins hochgezählt.
Code:
txtBit.Text = txtBit.Text + 1

Soweit sogut.
Dann habe ich eine If anweisung die reagiert wenn in der Textbox
7 drinnsteht (Bit 0-7 = 8Bit):

Code:
If txtBit.Text = "7" Then
Text2.Text = BinToDez(Text1.Text) 'Den binärstring in Dezimal umwandeln 
Text1.Text = "" 'Die probetextbox in der die binärzahlen zum umwandelsn stehen leeren
Text2.Text = Text2.Text & ", " 'Die Dezimalzahl hinzufügen zu den anderen des bildes
txtBit.Text = "0" 'Den Bitzähler wieder auf zurückstellen.
End If

Und danach kommt noch eine If routine um nachzusehen ob
das Bild fertig ist, also ob das programm jetzt aufhören kann
zu arbeiten.

Jetzt zu meinem Problem:
Es wandelt mir immer nur die ersten 8 Bit(Pixel) des bildes in Dezimal
um und dann springt das programm automatisch zum schluss, also es wird
die oben besagte routine gaktiviert die schaut ob das bild jetzt
zuende ist.

Wie aknn ich es jetzt bewerkstelligen das es genau dieß nicht macht und
weiter bis zu der letzten zahl alles konvertiert

Hier der code meiner Binär zu Dezimal umwandlungsroutine:
------------------------------------------------------------------------------------------------------------------------
Code:
Function BinToDez(ByVal Bin As String) As Integer
Dim x&, y&
	Bin = Bin & String$(8 - Len(Bin), "0")
	For x = 1 To Len(Bin)
	 If Mid$(Bin, x, 1) = "1" Then
		y = y + 2 ^ (8 - x)
	 End If
	Next x
	BinToDez = y
End Function
------------------------------------------------------------------------------------------------------------------------

Mfg. VbSpeed :)
 
Zuletzt bearbeitet:
@ Shakie:
Ja nee den hab ich ja jetzt natürlich
damit es schneller geht rausgetan.
Jetzt läuft das so schnell es kann.

Aber hast du ne Idee wegen dem Binär zu Dezimal
übersprung den ich einen beitrag vorger beschriebn hab

Danke !

Mfg. VbSpeed
 
Hat einrer schon ne Antwort auf meine Frgae warum
es bie der Dezimalumwnadlung gleich ans ende des bildes springt
und dann aufhört obwohl es nur die ersten 8 bit(pixel) eingelesen hat

Mfg. VbSpeed
 

Neue Beiträge

Zurück