MoinMoin,
irgendwie blick ich grad nich durch.... Folgende Situation:
Ich hab ein bmp-Bild von nem Online Gedöns in ein Array von 8bit/byte
umwandeln lassen. Das hat auch super geklappt. Das Bild hat 12*65 Pixel
zu je 8bit Rot, 8bit Grün und 8bit Blau.
Wenn ich dass Bild dann darstellen lasse, kommt auch genau das raus, was
ich vorher in Paint gemalt hab.
damit mir daraus ein Array von 32bit/"byte"-Werten gemacht wird. Weil
wegen ARGB.
Wenn ich das 32bit-Array dann darstellen lasse:
1
while(Y<65)
2
{
3
while(X<12)
4
{
5
BSP_LCD_DrawPixel(X,Y,(*(Bild_32b+(X*Y)+X)));
6
X++;
7
}
8
X=0;
9
Y++;
10
}
11
Y=0;
kommen höchst interesaante Muster bei raus, aber nicht mein kleines
häßliches Männchen...
Bilder muss ich gleich extra anhängen, irgendwie will mein Handy grad
nicht mit meinem Laptop reden ?!?!
Ich hab mir auch schon im SingleStep Modus die Arrays anzeigen lassen,
die Konvertierung scheint so weit richtig zu sein, die ersten zig paar
Werte und ein paar Stichproben haben jeweils richtige Werte ergeben.
Andrerseits hat mir das Konstrukt für die 32bit-Arrays bisher auch immer
treue Dienste geleistet und nicht hübsche Muster gezaubert.
Findet jdm auf die Schnelle nen Fehler?
Hier die Bilder. Die Quali is eher Semideluxe... Aber schlechtes Licht,
schlechte Kamera und winziges Bild auf dem Display, watt soll man tun.
P.S. es macht nicht interessante Muster, sondern immer das eine.
Deine ganzen Index Aufrufe und Wandlungen geben für sich doch einzelne
Werte zurück.
Die kannst du bevor du alle vereinigst einzeln prüfen,
dann zeigt sich ob es einen Unterschied macht.
pegel schrieb:> Deine ganzen Index Aufrufe und Wandlungen geben für sich doch einzelne> Werte zurück.> Die kannst du bevor du alle vereinigst einzeln prüfen,> dann zeigt sich ob es einen Unterschied machtJ. T. schrieb:> Ich hab mir auch schon im SingleStep Modus die Arrays anzeigen lassen,> die Konvertierung scheint so weit richtig zu sein, die ersten zig paar> Werte und ein paar Stichproben haben jeweils richtige Werte ergeben
Wie gesagt, das macht er ordentlich. Aber da auch meine
"32bit-Malfunktion" funktioniert, wundere ich mich, wo der Fehler
herkommt. Das Rot vom Hemd und das Schwarz der Hose finden sich ja
irgendwie auch wieder in den Kringeln.
Auch ändern des While(x <12) auf (x<11) oder 13 brachte bei der 8bit
Variante wie erwartet eine um 45 verzerrte version vom Männchen. Bei der
32bit Variante ist es schwer zu sagen, ob es das selbe Muster gleich
verzerrt ist oder nicht.
Jim M. schrieb:> BSP_LCD_DrawPixel(X, Y, (*(Bild_32b + (12*Y) + X )));> X++;
OOHHH MEIN GOTT!!! Ich danke dir. Wie ich diese Art von Fehler hasse. Da
schlägt irgendwann die Betriebsblindheit gaaanz fies zu :D
Ich hatte grad einfach mal das ganze spasseshalber größer gemacht und
wollt grad schreiben:
Irgendwie scheint da schon ne Art System drin zu stecken. Und dann steht
da die Lösung. Es ist irgendwie ein ganz hübscher Effekt.
> OOHHH MEIN GOTT!!! Ich danke dir. Wie ich diese Art von Fehler hasse.
Dann solltest du vielleicht lernen den Debugger deiner
Entwicklungsumgebung zu nutzen. Damit setzt du dann 2-3Breakpoints
schaust die Daten an, hast eine Idee in welcher Ecke der Fehler liegt,
gehst das Stueck mal im Singlestep durch und schaust dir dabei die
Variablen genau an und schwups ist der Fehler gefunden.
Olaf
Olaf schrieb:> Dann solltest du vielleicht lernen den Debugger deiner> Entwicklungsumgebung zu nutzen. Damit setzt du dann 2-3Breakpoints> schaust die Daten an, hast eine Idee in welcher Ecke der Fehler liegt,> gehst das Stueck mal im Singlestep durch und schaust dir dabei die> Variablen genau an und schwups ist der Fehler gefunden.
Würd ich dir normalerweise uneingeschränkt zustimmen. Aber hättest du
den Thread ganz gelesen, hättest du gelesen, dass ich das getan habe.
Aber wenn du auf (X*y +y, *pointer) eingeschossen bist, weil es in der
ursprünglichen Version (Xmax*y, Y, *pointer) hieß, hilft das leider auch
nicht weiter, sondern sorgt nur für Verzweiflung :D
In meinem Kopf machte es nur "Ok ein Pixel wurde gemalt... mhh ja ist
die richtige Position (halt das Pixel neben dem vorherigen). In der
Tabelle angeguckt, was an dem Pointer steht.. Mh ja die Farbe kommt auch
hin. HÄÄÄÄÄÄ???? WOOHER KOMMT DIESER FEHLER NUR??? X*Y+X ist doch auch
richtig, hat ja immer geklappt"
Mir war halt klar, dass der Fehler an der Stelle liegen muss, aber die
Betriebsblindheit gaukelte mir Richtigkeit vor.
Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.
Wichtige Regeln - erst lesen, dann posten!
Groß- und Kleinschreibung verwenden
Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang