Hallo Leute!
Ich habe ein Programm geschrieben, welches aus einem Bild ein Textbild macht. Das funktioniert auch soweit, bei kontrastreichen Bildern.
Zuerst wird das Bild in Graustufen umgerechnet, und dann wird aus dem Grauwert ein Buchstabe/Zeichen ermittelt, welches dann ins Bild gesetzt wird. Hier mal ein Beispiel:
Code:
.*l
:*%?:
³@§*
²%#*
:oMßl
:ö®#*
*#®o :²,
:oŒ®§² :+%§%öO+:
:ö®®®öoŒ®®ŒŒ®®#ß%²
²ö§M®®®®®M*:*#®®®ß&*.
.³%®®®®®®%;:***öößMo:
³P®®®®®®®§² ::
:'*P®®®®®®®&; ::
.:*#®®®®®®®®Œ&³: .³%%l:
?Œ®®®®®®®®®®®®®®®®®ŒPöl,.
'³&#&ß®®M#®ŒM®®M%@?³'
*%oO§%Œ®&³³o?²,:
..:::³%®ßl
,&®#*
³P®ö.
.ö®o
:OM*
*#ö:
²%&,
*ßö'
²§%;
.*ß%².
.l%#ßß#§o³'.
.:':.
Ich habe ein Array[0..255] of Char, darin werden die Buchstaben im OnCreate meiner Form initialisiert:
Delphi-Quellcode:
for i := 0 to 255 do
case i of
0..10: FBuchstaben[i] := chr(174);
11..20: FBuchstaben[i] := chr(140);
21..30: FBuchstaben[i] := 'M';
31..40: FBuchstaben[i] := '#';
41..50: FBuchstaben[i] := 'ß';
51..60: FBuchstaben[i] := 'P';
61..70: FBuchstaben[i] := '§';
71..80: FBuchstaben[i] := '%';
81..90: FBuchstaben[i] := '&';
91..100: FBuchstaben[i] := '@';
101..110: FBuchstaben[i] := 'O';
111..120: FBuchstaben[i] := 'ö';
121..130: FBuchstaben[i] := 'o';
131..140: FBuchstaben[i] := '?';
141..150: FBuchstaben[i] := '+';
151..160: FBuchstaben[i] := '*';
161..170: FBuchstaben[i] := '*';
171..180: FBuchstaben[i] := 'l';
181..190: FBuchstaben[i] := '³';
191..200: FBuchstaben[i] := '²';
201..210: FBuchstaben[i] := ';';
211..220: FBuchstaben[i] := ',';
221..230: FBuchstaben[i] := '''';
231..240: FBuchstaben[i] := ':';
241..254: FBuchstaben[i] := '.';
255: FBuchstaben[i] := ' ';
end;
Die benutzte Schriftart ist Courier New.
Mein Problem ist halt, dass die Bilder, die nicht sehr kontrastreich sind immer noch recht schwer zu erkennen sind, und deshalb wollte ich fragen, ob jemand eine Tabelle kennt, in der Zeichen einem Helligkeitswert zugeordnet werden, ich bin nach längerem Ausprobierem auf keine gute Lösung gekommen.
Vielen Dank schonmal!
Anbei auch noch Exe und Source, falls jemand interessiert ist, ist aber nur mäßig kommentiert