![]() |
APNG Support
Hat jemand bock/Lust mitzuwirken an einer Library (oder einfacher Unit) für APNG Support? (Abspielen vor allem)
Hab im Netz gesucht für Delphi gibt es da so gut wie gar nichts. Bin leider nicht so gut in English so das ich das aus der Wiki entnehmen könnte. Interface usw.. kann ich selbst erstellen sowie die Zeichnungs Routinen mit GDIplus. Bei den Rest Header einlesen usw.. bräuchte ich aber dann Hilfe. Im Moment arbeite ich an einen Player für Gif Dateien auch wenn es den schon gibt. Wie gesagt den APNG Support bekomme ich alleine nicht gebacken. gruss |
AW: APNG Support
Ich würde nicht sagen, dass es da nichts gibt.
![]() ![]() |
AW: APNG Support
Zitat:
Dann kann man nicht debuggen weil die TreeView Komponente nicht enthalten ist. Also würde sagen bis auf diese nicht Anwendbare Lib hab ich nichts gefunden. Ich sagte ja ich habe gesucht ;) gruss |
AW: APNG Support
Aber damit gibt es ja schon einmal eine Grundlage. Und die Bibliothek ist ja Open Source.
Deshalb fände ich es sinnvoller diese weiterzuentwickeln anstatt das Rad neu zu erfinden und alles neu zu machen. // EDIT: Ach ja, die TShellTreeView /wurde mit Delphi bis XE6 mitgeliefert, war nur standardmäßig nicht als Komponente installiert. Hier im XE6 Repository gibt es die auch noch: ![]() // EDIT2: Wenn ich mir den Quelltext so anschaue, finde ich die Bibliothek nicht wirklich aufgebläht. Und ein Beispiel zum Abspielen ist angesichts dessen, dass das Beispiel bereits in eine TPaintBox zeichnet und man an den Navigationsbuttons sieht, dass man nur ActiveImage setzen und die Paintbox refreshen muss, eine Sache von 30 Sekunden... |
AW: APNG Support
Zitat:
Macht keinen Sinn oder 99% des gesamten Quelltext will oder muss ich gar nicht nutzen. Sinnvoll wäre es wenn es hier nur ausschließlich um das Format APNG gehen würde aber dem ist bei weitem nicht so. Zitat:
gruss |
AW: APNG Support
Zitat:
Eine Bibliothek, die nur ein einzelnes Format unterstützt, würde ich nur nutzen, wenn es nicht anders geht. Denn sonst blähe ich mir die Exe unnötig auf sobald ich mehr als eins brauche, da in jeder Bibliothek, die ich einbinde, die gleiche Funktionalität doppelt und dreifach enthalten ist... Um Abspielen zu ergänzen reichen jedenfalls ein Button und ein Timer (Intervall 50-100ms):
Delphi-Quellcode:
Das flackert so noch, aber das ließe sich sicher noch korrigieren.
procedure TMainForm.tmrPlayTimer(Sender: TObject);
begin if FImage.ImageCount > FImage.ActiveImage + 1 then FImage.ActiveImage := FImage.ActiveImage + 1 else FImage.ActiveImage := 0; SetSupported; PaintBox.Repaint; end; procedure TMainForm.btnPlayClick(Sender: TObject); begin tmrPlay.Enabled := not tmrPlay.Enabled; if tmrPlay.Enabled then btnPlay.Caption := 'Abspielen stoppen' else btnPlay.Caption := 'Abspielen starten'; end; // EDIT: Wenn man das ganze Zeug aus OnPaint herausnimmt, das dort für eine Animation nicht reingehört (alles bis auf die letze Zeile) und in den Timer vor das Repaint setzt und DoubleBuffered im Objektinspektor für das Formular setzt, flackert da auch nix mehr. |
AW: APNG Support
Zitat:
Wenn ich für meine Form eine Checkbox benötige dann baue ich mir bestimmt nicht noch ein ListView mit ein. Und genau das ist was diese Lib da tut. Ich brauche kein OpenGL, 3D und den ganzen anderen Kram nur um ein APNG Image abspielen zu können. Deshalb gibt es ja auch verschiedene Anwendungen die nur für eine einzige Funktion ausgelegt sind. Für eine Datenbank Anbindung baue ich kein Exel ein wenn ich SQL verwende so einfach ist das.- Zitat:
Zitat:
Den Speed beim Abspielen kann man selbst innerhalb der APNG einstellen. (Abspeichern) Der Timer muss jedoch 1ms betragen. PS: Aber anschauen (was ich schon habe) kann man es sich auf jeden fall. Vielleicht kann man das teil auseinandernehmen so das man wirklich nur den Teil für APNG nutzen kann. gruss |
AW: APNG Support
Zitat:
In deine Exe baust du davon also wenn, dann selbst etwas ein. Wenn du nur den reinen APNG Support einbaust, passiert das logischerweise auch nicht. Das eine dient ja dem Auslesen der Bilddaten usw. und das andere der Anzeige. Würde die Bibliothek aber nicht beides beinhalten, müsste eine Bibliothek für den aktuellen OpenGL Teil den anderen Teil aber soweit nötig selbst implementieren. Braucht man dann beides, würde man wie gesagt die selbe Funktionalität doppelt in der Exe haben, da die gemeinsamen Funktionen nicht in einer Unit für beide Funktionen genutzt werden könnten. Nur weil eine Bibliothek eine Funktionalität anbietet, bläht sich die Exe daher nicht auf. Wenn es viele einzelne Bibliotheken mit ähnlichen Funktionen gibt, dann schon. Zitat:
Ein Timer mit 1 ms macht aufgrund der Zeitauflösung keinen Sinn. Dann sollte es eher via Thread gelöst werden, wenn solche Bildwiederholraten im Raum stehen. Diese Information wird im Moment leider nicht veröffentlicht soweit ich das sehe, aber ich habe einmal testweise die TfcTL Daten in TImageData eingebettet. Dann kommt man da auch heran und das ganze klappt. |
AW: APNG Support
Das ist nett das du dich um mein Problem bzg. des Threads bemühst.
Das Problem ist nur ich bekomme das Teil hier nicht so zum laufen das es auch nur halbwegs funktioniert. Ich habe die TreeView installiert aus C:\Users\Public\Documents\RAD Studio\11.0\Samples\Delphi\VCL\ShellControls\dclsh lctrls.dpk danach hatte ich nur noch Probleme mit der 1.4 bpl irgendwas. Wenn ich dann einen Button zum Window addiert habe kamen nur noch Fehler in der IDE und hier
Delphi-Quellcode:
Also das Teil ist einfach zu alt und unter D2010 nicht ausführbar.
procedure TMainForm.SetSupported;
begin // Update image info and enable previous/next buttons LabDim.Caption := Format('%dx%d pixels', [FImage.Width, FImage.Height]); LabFileFormat.Caption := Imaging.FindImageFileFormatByName(FFileName).Name; // Error AV 000005 Ich habe nur die ImgBrowser.D2009.dproj Siehe pic nach dem Klick auf den Play Button. Na ja egal im Moment bin noch mit dem GIF Kram dran. Auf der anderen Seite möchte ich auch niemand zumuten diese Library incl. TreeView extra für mein Programm zu installieren. Das ist halt der Nachteil wenn man Komponente verwendet. gruss |
AW: APNG Support
Zitat:
Zitat:
Und die ist ja nur für die Demo, die hat ja mit dem Rest nix zu tun. Und installiert werden muss da gar nix von der Bibliothek, die Units einbinden reicht. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:25 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