Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Welche Zeichen nehmen für Bild (https://www.delphipraxis.net/88858-welche-zeichen-nehmen-fuer-bild.html)

Tormentor32 22. Mär 2007 07:21


Welche Zeichen nehmen für Bild
 
Liste der Anhänge anzeigen (Anzahl: 1)
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 :mrgreen:

n00ki3 22. Mär 2007 08:10

Re: Welche Zeichen nehmen für Bild
 
Ich kann dir bei deinem Problem nicht helfen ,aber ich kenn ein Open-Source Programm das genau das tut was du versuchts ...

http://sourceforge.net/projects/ascgen2/

Man benötigt jedoch das .NET 2.o Framework .

Tormentor32 22. Mär 2007 08:23

Re: Welche Zeichen nehmen für Bild
 
Danke, das werd ich mir mal anschauen!

marabu 22. Mär 2007 09:08

Re: Welche Zeichen nehmen für Bild
 
Hallo Richard,

hier findest du eine Tabelle für 10 Grauwerte: klick

Feinere Abstufungen könnte man durch Auszählung der Black-White-Ratio des von dir verwendeten Fonts erreichen.

Grüße vom marabu

Gruber_Hans_12345 22. Mär 2007 09:12

Re: Welche Zeichen nehmen für Bild
 
einfach mal die ascii zeichen per canvas in ein monochrom bitmap schreiben lassen, und dann die pixeln durchgehen, wieviel davon schwarz sind, dann müsstest (für jede schriftart natürlich seperat) ein sehr genaue tabelle bekommen ... und dürft auch nicht so lange dauern, das du das eigentlich jedesmal beim starten machen kannst ...


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:01 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz