Hallo
In einem Programm sind verschieden bmp als Beispiel mit drin. Das Bild
zur Uhr (rund) funktioniert sehr gut.
Unter dem Bild Sanduhr ist der gleiche Code mit einer anderen Grüöösse
Angabe drin.
Klaus schrieb:> Kennt jemand den richtigen Code dazu oder eine Erklärung damit ich es> selbst erstellen kann?
Das wahrscheinlichste wäre, dass du das Array als 2D interpretieren
musst. Alle Pixel der Bitmap sind Zeilen oder Spaltenweise nacheinander
da drin. Zähl also die Einträge im Array, dann rate/probier die Größe
aus bis es klappt.
Bleibt immer noch das Problem warum die Sanduhr nicht geht oder besser
als Uhr dargestellt. Sicher kommt jemand auf die Idee, das muss so sein
weil in jedem Teil da gleiche. Stimmt. Hat jemand sowas für eine
Sanduhr?
K. S. schrieb:> Das wahrscheinlichste wäre, dass du das Array als 2D interpretieren> musst. Alle Pixel der Bitmap sind Zeilen oder Spaltenweise nacheinander> da drin. Zähl also die Einträge im Array, dann rate/probier die Größe> aus bis es klappt.
Klingt nicht schlecht, komme aber nicht so richtig damit klar. Kennst du
ein paar lesbare Quellen dazu?
Paul schrieb:> Bist du sicher das kein Code da ist?
Das Problem liegt beim nicht-gezeigten Code. So sind das einfach Arrays,
was die darstellen sollen ergibt sich allenfalls für einen menschlichen
Leser aus den Kommentaren/variablennamen.
Was das Problem ist, wissen wir nicht, und auch was es verursacht nicht,
können also nur raten.
Kann der Darstellung-Code z.B. nicht mit der "Schiefen" Breite von 26
Pixeln umgehen, weil er nur ganze Bytes (mit 8 Pixeln) verarbeitet?
Εrnst B. schrieb:> So sind das einfach Arrays,> was die darstellen sollen ergibt sich allenfalls für einen menschlichen> Leser aus den Kommentaren/variablennamen
Die 2. Version ergibt tatsächlich 25 x 32 Pixel, die erste nicht. Man
kann die Bits verschieden anordnen z. B. 1 Byte 224 als ***-----, unter-
oder nebeneinander schreiben, bis sich ein sinnvolles Bild ergibt
(sollte Ähnlichkeit mit einer Sanduhr haben, ist mir jetzt aber zu
mühsam).
Georg
Beide Arrays haben 100 Bytes (= 800 Bits) Nutzdaten, wenn man die ersten
beiden Bytes als Länge/Breite interpretiert und somit lässt sich damit
eine 25x32 Matrix füllen.
Stimmt die Angabe der Größe mit "25,26", da im funktionierenden Beispiel
"25,32" angegeben ist?
Gruß,
Michael
Michael F. schrieb:> Stimmt die Angabe der Größe mit "25,26", da im funktionierenden Beispiel> "25,32" angegeben ist?
Die Angabe steht so im ori.
Mit der Angabe 25,32 wird eine runde Uhr angezeigt. Mit der Angabe 25,26
wird nichts angezeigt. Wenn ich 25,26 auf 25,32 ändere wird auch eine
runde uhr angezeigt.
Es stimmt soweit, habe vor längerer Zeit bereits nach einer Lösung
gesucht, leider ohne Erfolg. Vielleicht klappt es heute besser.
Georg schrieb:> ... oder nebeneinander schreiben, bis sich ein sinnvolles Bild ergibt> (sollte Ähnlichkeit mit einer Sanduhr haben, ist mir jetzt aber zu> mühsam).
Warum sollten - bis auf 4 Bit - identische Daten einmal eine runde Uhr
und einmal eine Sanduhr ergeben?
Da kann man lange hin- und her schreiben, um daraus eine Sanduhr zu
machen ;-)
Wie soll bei Umstellung einer 32 in 26, aus einer runden Uhr eine
Sanduhr werden?
Verstehe ich jetzt nicht.
Beide genannten Bitmaps haben denselben Inhalt.
Ups: Hat mein Vorposter auch bereits geschrieben - man sollte immer
alles lesen. ;-)
Christian H. schrieb:> Beide genannten Bitmaps haben denselben Inhalt.
Vermutlich benutzt die vom TO sorgfältig geheimgehaltene Software bei
der Angabe von 25 x 26 die gleichen 4 Bytes wie bei 25 x 32, weil ganz
einfach 26 Pixel 3,25 Bytes ergeben, was es nicht gibt oder zumindest
sehr unpraktisch ist - die zuviel enthaltenen 6 Pixel werden dann halt
abgeschnitten bzw. nicht dargestellt. Macht man üblicherweise so, wenn
die Arraygrenzen keine ganzen Bytes ergeben und man nicht aufwendig
schieben und kombinieren will.
Weitere Vermutung: die geheime Software des TO kann das nicht und passt
offensichtlich nicht zur 1. Version des Pixelarrays.
Wolfgang schrieb:> Da kann man lange hin- und her schreiben, um daraus eine Sanduhr zu> machen ;-)
Das mit der Sanduhr behauptet ja der TO. Das muss keine gesicherte
wissenschaftliche Tatsache sein.
Georg
Ich hätte gern einmal ein Foto von der runden Uhr und der Sanduhr (darf
auch unscharf mit 2MB sein) aus dem hochgeheimen Programm.
Vielleich kann man dann eine Alternative basteln.
MfG von der Spree
Frank
Frank S. schrieb:> Ich hätte gern einmal ein Foto von der runden Uhr und der Sanduhr
Evtl. brauchts das auch garnicht, weil Unicode inzwischen ausreichend
(Sand-)Uhren enthält?
⌛⏳⌚⏰⏱️⏱⏲️⏲🕰️🕰🕛🕐🕚
Paul schrieb:> Es stimmt soweit, habe vor längerer Zeit bereits nach einer Lösung> gesucht, leider ohne Erfolg. Vielleicht klappt es heute besser.
Mensch Klaus/Paul/Heinz/Ein Wiesbegieriger!
Im oben verlinkten Thread warst Du doch schon viel weiter mit dem
Verständnis: (
Beitrag "Re: bmp Beispieldatei" )
Da die ganzen von Yalu X. erzeugten Arrays laut Deinen Aussagen auch
richtig angezeigt wurden, habt ihr doch schon komplett verstanden, wie
das alles geht! :)
Mein Tipp: Lass' Dich nicht durch die vielen Ratschläge zu irgendwelchen
Programmen und Code-Generatoren durcheinanderbringen, sondern mal' Dir
Dein gewünschtes Bild auf Karo-Papier auf, und dann ermittle die Zahlen
für das Array von Hand. In dem Beitrag hast Du selbst schon geschrieben,
was diese Zahlen bedeuten! Also musst Du das jetzt nur rückwärts machen,
von den Pixeln zur Zahl.
PS: Du wurdest auch schon darauf hingewiesen, dass Du in einem Thread
bitte bei nur einem Namen bleiben sollst. Hier fängst Du wieder mit dem
durcheinander an. Das ist nicht sehr nett, erschwert uns die Hilfe, und
fördert dem Umstand, dass sich hier Leute nur über Dich lustig machen
wollen.
Chris schrieb:> ... und dann ermittle die Zahlen für das Array von Hand.
Dezimalzahlen und dazu noch mit freier Formatierung gehört dabei sicher
zu einer der unüberischtlichsten Darstellungsformen.