AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

APNG Support

Ein Thema von EWeiss · begonnen am 18. Mär 2017 · letzter Beitrag vom 19. Mär 2017
Antwort Antwort
EWeiss
(Gast)

n/a Beiträge
 
#1

APNG Support

  Alt 18. Mär 2017, 04:20
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
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.857 Beiträge
 
Delphi 12 Athens
 
#2

AW: APNG Support

  Alt 18. Mär 2017, 10:05
Ich würde nicht sagen, dass es da nichts gibt. Bei Google suchenAuf Anhieb habe ich eben diese Bibliothek gefunden:
https://sourceforge.net/projects/imaginglib/
Sebastian Jänicke
AppCentral

Geändert von jaenicke (18. Mär 2017 um 13:11 Uhr)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#3

AW: APNG Support

  Alt 18. Mär 2017, 13:32
Ich würde nicht sagen, dass es da nichts gibt. Bei Google suchenAuf Anhieb habe ich eben diese Bibliothek gefunden:
https://sourceforge.net/projects/imaginglib/
Die ist aber leider extrem aufgebläht ein Anwendungs Beispiel zum abspielen der APNG ist auch nicht enthalten, außer das Abspielen einzelner Frames.
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

Geändert von EWeiss (18. Mär 2017 um 13:36 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.857 Beiträge
 
Delphi 12 Athens
 
#4

AW: APNG Support

  Alt 18. Mär 2017, 15:14
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:
https://sourceforge.net/p/radstudiod...ShellControls/

// 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...
Sebastian Jänicke
AppCentral

Geändert von jaenicke (18. Mär 2017 um 15:25 Uhr)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#5

AW: APNG Support

  Alt 18. Mär 2017, 15:24
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 wird/wurde mit Delphi mitgeliefert, ist nur standardmäßig nicht als Komponente installiert...
Ich soll also 10000 Units einbinden nur um den Header der APNG einzulesen und diese abzuspielen?
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:
Aber damit gibt es ja schon einmal eine Grundlage.
Ja wenn es sich ausschließlich um APNG handeln würde.


gruss
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.857 Beiträge
 
Delphi 12 Athens
 
#6

AW: APNG Support

  Alt 18. Mär 2017, 15:38
Ich soll also 10000 Units einbinden nur um den Header der APNG einzulesen und diese abzuspielen?
Macht keinen Sinn oder 99% des gesamten Quelltext will oder muss ich gar nicht nutzen.
Das finde ich sinnvoller als für jede winzige Funktionalität eine eigene Bibliothek zu benutzen.
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:
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;
Das flackert so noch, aber das ließe sich sicher noch korrigieren.

// 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.
Sebastian Jänicke
AppCentral

Geändert von jaenicke (18. Mär 2017 um 15:49 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


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 03:07 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