Einzelnen Beitrag anzeigen

Benutzerbild von Tormentor32
Tormentor32

Registriert seit: 27. Okt 2005
Ort: Düsseldorf
369 Beiträge
 
Delphi XE5 Professional
 
#1

Welche Zeichen nehmen für Bild

  Alt 22. Mär 2007, 08:21
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
Angehängte Dateien
Dateityp: zip imagetotext_123.zip (252,8 KB, 10x aufgerufen)
Richard Mahr
  Mit Zitat antworten Zitat