AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte TPCMDrawer - Bilder hören statt sehen
Thema durchsuchen
Ansicht
Themen-Optionen

TPCMDrawer - Bilder hören statt sehen

Ein Thema von Dunkel · begonnen am 29. Dez 2008 · letzter Beitrag vom 1. Feb 2009
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Dunkel
Dunkel

Registriert seit: 26. Mär 2007
Ort: Klingenstadt
541 Beiträge
 
Delphi 2007 Enterprise
 
#1

Re: TPCMDrawer - Bilder hören statt sehen

  Alt 30. Dez 2008, 20:48
Zitat von rollstuhlfahrer:
Es fehlt nur noch die Funktion, aus dem Ton ein Bild zurückzuholen
Ich könnte den Sonagramm-Visualisierungs-Teil aus AudioDB extrahieren und mit in die Klasse (in eine neue Klasse) packen. Mal schaun'.
Momentan bastle ich an einem GUI dafür, da könnte man dann auch ein "Livebild" während der Konvertierung anzeigen lassen.
Es ist zu wahr um schön zu sein...
  Mit Zitat antworten Zitat
Benutzerbild von Dunkel
Dunkel

Registriert seit: 26. Mär 2007
Ort: Klingenstadt
541 Beiträge
 
Delphi 2007 Enterprise
 
#2

Re: TPCMDrawer - Bilder hören statt sehen

  Alt 1. Jan 2009, 18:11
Ich hab' mal ein wenig dran weitergebastelt.

Das Demoprojekt ist jetzt auch endlich erwachsen, Laden von Bitmaps und JPEGs funktioniert via Drag&Drop aus dem Explorer, die Bilder können verkleinert/vergrößert werden, an diversen Einstellungen kann nach Lust und Laune herumgespielt werden, Threading ist endlich implementiert.

ToDos: Geschwindigkeit! Mal gucken, ob man Multithreading implementieren kann.

Viel Spaß damit!
Es ist zu wahr um schön zu sein...
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: TPCMDrawer - Bilder hören statt sehen

  Alt 1. Jan 2009, 23:55
Zitat von Dunkel:
ToDos: Geschwindigkeit! ...
Schau dir doch mal Bitmap.ScanLine an, wenn du das anstelle von Canvas.Pixels verwendest, dann wird es kein Geschwindigkeitsproblem mehr geben.
  Mit Zitat antworten Zitat
Benutzerbild von Dunkel
Dunkel

Registriert seit: 26. Mär 2007
Ort: Klingenstadt
541 Beiträge
 
Delphi 2007 Enterprise
 
#4

Re: TPCMDrawer - Bilder hören statt sehen

  Alt 2. Jan 2009, 01:37
Zitat von omata:
Zitat von Dunkel:
ToDos: Geschwindigkeit! ...
Schau dir doch mal Bitmap.ScanLine an, wenn du das anstelle von Canvas.Pixels verwendest, dann wird es kein Geschwindigkeitsproblem mehr geben.
Ist schon implementiert. Entweder mache ich da was falsch oder es bringt doch nicht so viel.
Delphi-Quellcode:
procedure TPCMDrawerWorker.ReadPictureData;
type
  pixel = array[0..2] of byte;
var
  p : ^pixel;
  i: integer;
  r, g, b, c: byte;
  color, v: integer;
begin
  p := fBitmap.ScanLine[fBitmapPosCounter];
  for i := 0 to fBitmap.Width -1 do
  begin
    r := Byte(p^[0]);
    g := Byte(p^[1]);
    b := Byte(p^[2]);

    if fReverseColors then
      c := 255 - ((r+b+g) div 3)
    else
      c := ((r+b+g) div 3);

    v:= Trunc(c / 255 * fAmplitude);
    if v >= cIgnoreColorLower then
      fPixelData[i].Amplitude := v
    else
      fPixelData[i].Amplitude := 0;

    inc(p);
  end;
  Inc(fBitmapPosCounter);
end;
Multithreading (sprich das Aufteilen des Bildes in mehrere Abschnitte, welche dann autark bearbeitet werden) bringt auf meinem DualCore mit 2 Threads ungefähr 40 - 45 % mehr Geschwindigkeit. Immerhin...
Es ist zu wahr um schön zu sein...
  Mit Zitat antworten Zitat
Benutzerbild von Dunkel
Dunkel

Registriert seit: 26. Mär 2007
Ort: Klingenstadt
541 Beiträge
 
Delphi 2007 Enterprise
 
#5

Re: TPCMDrawer - Bilder hören statt sehen

  Alt 23. Jan 2009, 22:20
Lange nicht mehr dran weitergebastelt und doch ist zwischenzeitlich das Projekt gewachsen.

Ich hab mal ein neues ZIP-Archiv an den ersten Beitrag gepinnt. In ihr befindet sich ein etwas ausgereifter Editor, um Geräusche aus Bildern zu kreieren. Mit integriert ist auch eine Sonagramm-Visualisierung.

Den Quelltext der TPCMDrawer-Klasse muss ich noch ein wenig "schönschreiben", dann werde ich ihn auch im ersten Beitrag aktualisieren.
Es ist zu wahr um schön zu sein...
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#6

Re: TPCMDrawer - Bilder hören statt sehen

  Alt 25. Jan 2009, 18:20
Ich habe mir die "PCMDrawerDemoV0_2.zip", welche zwar mehrere Threads hat, aber nur ein Kern auslastet (22 - 25 %).

Außerdem dauert es 38 von 12 Sekunden? Abgesehen davon, sind das (wenns andersherum ist), fast 33 %, obwohl die Progressbar noch nicht mal etwas zeigt.

Ansonsten kann ich erstmal dazu nichts sagen.

MfG
xZise
Miniaturansicht angehängter Grafiken
pcm_153.jpg  
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Benutzerbild von Dunkel
Dunkel

Registriert seit: 26. Mär 2007
Ort: Klingenstadt
541 Beiträge
 
Delphi 2007 Enterprise
 
#7

Re: TPCMDrawer - Bilder hören statt sehen

  Alt 31. Jan 2009, 00:35
Zitat von xZise:
Ich habe mir die "PCMDrawerDemoV0_2.zip", welche zwar mehrere Threads hat, aber nur ein Kern auslastet (22 - 25 %).

Außerdem dauert es 38 von 12 Sekunden? Abgesehen davon, sind das (wenns andersherum ist), fast 33 %, obwohl die Progressbar noch nicht mal etwas zeigt.

Ansonsten kann ich erstmal dazu nichts sagen.

MfG
xZise
Die Version, welche Du hast, kann zwar (theoretisch) mehr als einen Kern auslasten; diese tut es (auf Deinem Quad-Core) aber nicht!

Und das Problem, dass die vorhergesagte Laufzeit nicht stimmt, ist mir bekannt. Für's Beheben müsste ich Delphi starten: mal schaun', wann ich das das nächste Mal mache...
Es ist zu wahr um schön zu sein...
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#8

Re: TPCMDrawer - Bilder hören statt sehen

  Alt 1. Feb 2009, 00:51
Okay mit der PCMDrawerEditor.zip sind es immrhin 60 - 70 %

MfG
xZise
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 02:12 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 by Thomas Breitkreuz