AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Bitmap zu Ascii , schnelle Routiene gesucht.
Thema durchsuchen
Ansicht
Themen-Optionen

Bitmap zu Ascii , schnelle Routiene gesucht.

Ein Thema von turboPASCAL · begonnen am 19. Dez 2009 · letzter Beitrag vom 27. Dez 2009
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#1

Bitmap zu Ascii , schnelle Routiene gesucht.

  Alt 19. Dez 2009, 19:15
Hi,

ich suche eine Routine, die schnell Bitmap zu Ascii-Zeichencode wandeln kann.
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#2

Re: Bitmap zu Ascii , schnelle Routiene gesucht.

  Alt 19. Dez 2009, 22:45
Meinst du damit eine darstellbare Binärcodierung wie Base64, oder willst du ASCII-Art automatisch erzeugen? Bei letzterem gibt's 3 zu unterscheidende Varianten, die sich im Aufwand teils erheblich voneinander unterscheiden:
1) Farbbitmap zu beliebigen Zeichen (z.B. Zufallstext), so dass ein Zeichen nur in entsprechnder Farbe sein muss
2) S/W Bitmaps, bei denen die Formen auf Sub-Character-Ebene genau nachgebildet werden sollen
3) Kombi aus 1 und 2

Du müsstest also schon etwas genauer werden
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#3

Re: Bitmap zu Ascii , schnelle Routiene gesucht.

  Alt 20. Dez 2009, 06:03
Wie man ein Bitmap in Ascii-Zeichen übertragen kann ist für mich kein Problem.

Image Matrix FX ASCII Art
Delphi für Win32 Bitmap to ASCII - blinkende Zeichen (Problemchen)

Nur sind die meine eigenen Routinen für meine Zwecke, also eine schnelle Abfolge von Bildern anscheinend etwas zu langsam.
Das auslesen der Farbwerte des Bitmaps wird direkt über den Pointer erledigt, also nix mit Canvas.Pixels[].
Zu dem ich auch keinen TCanvas habe.
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#4

Re: Bitmap zu Ascii , schnelle Routiene gesucht.

  Alt 20. Dez 2009, 19:11
Also das mit dem Umwandeln der Zeichen und dann noch passend Farbe dazu ist nicht so einfach.
Ich könnte ein wenig Hilfe gebrauchen.
Angehängte Dateien
Dateityp: exe dostext_691.exe (52,0 KB, 11x aufgerufen)
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#5

Re: Bitmap zu Ascii , schnelle Routiene gesucht.

  Alt 20. Dez 2009, 22:26
Am besten wäre es wohl, wenn du den konkreten Source posten würdest den es zu optimieren gilt.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Benutzerbild von Valle
Valle

Registriert seit: 26. Dez 2005
Ort: Karlsruhe
1.223 Beiträge
 
#6

Re: Bitmap zu Ascii , schnelle Routiene gesucht.

  Alt 20. Dez 2009, 22:28
Mal so am Rande angemerkt...

Ich habe mal vor einiger Zeit mehr oder weniger aus Versehen den VLC Player (oder wars der MPlayer?) in der Konsole mit einem Video gestartet. Dabei hat der Player das Video in Echtzeit (!) in ASCII-Art gewandelt. Das heißt also, dass es möglich sein muss, es schneller zu machen.

Liebe Grüße,
Valle
Valentin Voigt
BOFH excuse #423: „It's not RFC-822 compliant.“
Mein total langweiliger Blog
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#7

Re: Bitmap zu Ascii , schnelle Routiene gesucht.

  Alt 21. Dez 2009, 01:27
Ich hab da mal was gebastelt - multithreaded

Leider hast du ja kein Testvideo o.ä. beigelegt, weshalb ich etwas improvisieren musste. (Meine Improvisation ist wahnsinnig kreativ, so viel sei verraten )

Das Programm benötigt leider die Graphics32, weil diese komfortablen Zugriff auf die Bildrohdaten liefert, und ich zu faul war, das ganze mit dem normalen TBitmap zu machen - bzw. eigentlich hab ich's versucht, aber das Programm ist dann eingefroren - wahrscheinlich ist TBitmap.Scanline nicht Threadsafe.

Der Code ist teilweise etwas hässlich und für Nicht-Eingeweihte möglicherweise auch etwas unverständlich. Falls das der Fall sein sollte, kannst du mich gerne dazu befragen.

[edit]
Achja, es fehlt auch noch eine gescheite Fehlerbehandlung. Derzeit dürfte es z.B. ziemlich sicher krachen, wenn die Höhe des Bildes niedriger ist als die Anzahl der Threads.

Btw: Routine schreibt man ohne ie.
[/edit]
Angehängte Dateien
Dateityp: 7z asciicreatormultithread_145.7z (228,4 KB, 26x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#8

Re: Bitmap zu Ascii , schnelle Routiene gesucht.

  Alt 21. Dez 2009, 15:05
Erst einmal schonen Dank.

Das mit der Geschwindigkeit passt nun. Was noch zu knacken wäre ist die Sache mit der verflixten Farbe.
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#9

Re: Bitmap zu Ascii , schnelle Routiene gesucht.

  Alt 21. Dez 2009, 15:33
Zitat von turboPASCAL:
Das mit der Geschwindigkeit passt nun. Was noch zu knacken wäre ist die Sache mit der verflixten Farbe.
Für die Farbe würde ich das Bild erst mal in HSL umrechnen. Als Farbe nimmst du dann den Hue (H), und die Helligkeit (L) stellst du über den Zeichencode dar. Für die Farbe würde sich evtl. ein weiteres Array anbieten (kann man wieder schön in den Threads befüllen), wie du das ganze dann ausgibst hängt natürlich von deiner Ausgabemethode ab - Konsole? Canvas? ...?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.153 Beiträge
 
Delphi 12 Athens
 
#10

Re: Bitmap zu Ascii , schnelle Routiene gesucht.

  Alt 21. Dez 2009, 15:36
Selbst wenn TBitmap.Scanline nicht threadsave ist, könnte man sich die Scanline-Pointer vorher holen und an die Threads abgeben.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:00 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz