AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte AnimatePNG
Thema durchsuchen
Ansicht
Themen-Optionen

AnimatePNG

Ein Thema von EWeiss · begonnen am 20. Mär 2017 · letzter Beitrag vom 8. Jun 2018
Antwort Antwort
EWeiss
(Gast)

n/a Beiträge
 
#1

AW: AnimatePNG

  Alt 30. Mär 2017, 20:58
CPU <> FPS..
Habe das Rendern jetzt beschleunigen können

Bitmap 512X512 mit 120 Frames.

7% CPU bei einem Timer Interval von 30ms (abhängig von der FrameDimensionTime) bei 49FPS
In Realzeit (1ms) sind es 25 aber mit 66FPS von daher spielt dann die Auslastung der CPU keine Rolle mehr
wenn die Maximale Frameanzahl pro Sekunde erreicht wird ohne das die Animation ruckelt oder langsamer wird.

EDIT:
Habe es noch mehr steigern können das gleiche Bitmap in Realzeit 2 > 12% CPU 67FPS
Mein Dank geht an die Leute, die das für mich Optimiert haben.. LOL

EDIT2:
Nochmal optimiert sollte jetzt fertig sein. Siehe Pic Fast0.
Das gleiche noch mit Gif dann war's das.


gruss

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

n/a Beiträge
 
#2

AW: AnimatePNG

  Alt 31. Mär 2017, 04:56
Neue Version oben.
Was ich geändert habe steht auch dort.

gruss
  Mit Zitat antworten Zitat
Delphi-Laie

Registriert seit: 25. Nov 2005
1.474 Beiträge
 
Delphi 10.1 Berlin Starter
 
#3

AW: AnimatePNG

  Alt 31. Mär 2017, 10:58
Leider ist das Programm in seiner dereitigen Version für mich unbenutzbar, es erscheint das berüchtigte: "AnimatePNG.exe hat ein Problem festgestellt und muss beendet werden."

Bei GifToAPNG.exe wäre eine Ausgabe ob der erfolgreichen /-losen Konvertierung günstig (gewesen). Daß erfolgreich konvertiert wurde, stellte ich erst beim Blick in das jeweilige Verzeichnis fest (die Ausgabe "...FrameCount=.." besagt das ja nicht). Zu meiner Verwunderung war die APNG zudem deutlich größer als die als Vorlage verwandte GIF, nämlich etwa doppelt so groß. Eigentlich sollte es doch andersherum sein. Meine Härtetest-Gifs (zu denen ich hier schon verlinkte) zu konvertieren schafft der Konverter leider nicht.

Geändert von Delphi-Laie (31. Mär 2017 um 15:06 Uhr)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#4

AW: AnimatePNG

  Alt 31. Mär 2017, 15:59
Zitat:
Zu meiner Verwunderung war die APNG zudem deutlich größer als die als Vorlage verwandte GIF
Vergleich doch mal das Datei Format dann weist du warum APNG größer ist.

Zitat:
"AnimatePNG.exe hat ein Problem festgestellt
Hatten wir schon .. habe es nochmal aktualisiert.
Quelltext ist dabei.

Zitat:
die Ausgabe "...FrameCount=.." besagt das ja nicht
Klar und zwar deutlich ist der Frame Count 0 dann wurde auch nichts extrahiert.

Zudem wird eine Fehlermeldung ausgegeben, dürfte bei deiner Gif Win32Error sein.
Warum das so ist habe ich dir schon ein paar Seiten vorher hier im Thread erklärt.

gruss

Geändert von EWeiss (31. Mär 2017 um 18:21 Uhr)
  Mit Zitat antworten Zitat
Delphi-Laie

Registriert seit: 25. Nov 2005
1.474 Beiträge
 
Delphi 10.1 Berlin Starter
 
#5

AW: AnimatePNG

  Alt 31. Mär 2017, 17:05
Zitat:
"AnimatePNG.exe hat ein Problem festgestellt
Hatten wir schon .. habe es nochmal aktualisiert.
Es hat sich aber leider nichts geändert, geschweige denn, verbessert. Das / ein Problem, das von Windows leider in keiner Weise konkretisiert wird, ist immer noch vorhanden.

Quelltext ist dabei.
Ab welchem Delphi compiliert das denn? Wegen dieser massiven Probleme vermute ich ein ziemlich aktuelles Delphi.

An sich ein akzeptables Angebot, nur bezweifele ich, als Außenstehender das Problem in vertretbarer Zeit zu lösen.

Geändert von Delphi-Laie (31. Mär 2017 um 17:08 Uhr)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#6

AW: AnimatePNG

  Alt 31. Mär 2017, 17:15
Zitat:
Es hat sich aber leider nichts geändert, geschweige denn, verbessert. Das / ein Problem, das von Windows leider in keiner Weise konkretisiert wird, ist immer noch vorhanden.
lösch doch einfach mal die Ini.

user/deinname/appdata/roaming/BrewIdeas/AnimatePNG

Zitat:
Ab welchem Delphi compiliert das denn?
D2010

gruss
  Mit Zitat antworten Zitat
Delphi-Laie

Registriert seit: 25. Nov 2005
1.474 Beiträge
 
Delphi 10.1 Berlin Starter
 
#7

AW: AnimatePNG

  Alt 31. Mär 2017, 17:28
lösch doch einfach mal die Ini.
Yo, jetzt funktioniert es, danke!
  Mit Zitat antworten Zitat
Delphi-Laie

Registriert seit: 25. Nov 2005
1.474 Beiträge
 
Delphi 10.1 Berlin Starter
 
#8

AW: AnimatePNG

  Alt 31. Mär 2017, 17:32
So, das nächste Problemchen: Drücke ich auf den Beenden-Knopf und dann auf "no", friert das Programm ein.

Edit: Zumindest wird man diese Nachfrage nicht wieder los.

Edit 2: Auch den Dialog, wenn man auf "APNG" klickt, wird man mit "no" nicht mehr los.

Geändert von Delphi-Laie (31. Mär 2017 um 17:42 Uhr)
  Mit Zitat antworten Zitat
Namenloser

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

AW: AnimatePNG

  Alt 31. Mär 2017, 16:47
Zu meiner Verwunderung war die APNG zudem deutlich größer als die als Vorlage verwandte GIF, nämlich etwa doppelt so groß. Eigentlich sollte es doch andersherum sein.
Bei PNG hängt auch viel davon ab, wie man es speichert. Standardmäßig verwendet PNG meist 32 Bit oder 24 Bit pro Pixel. GIFs dagegen verwenden eine Palette mit 256 Farben. Allerdings kann man – was viele nicht wissen – auch bei PNGs Paletten verwenden, sogar mit weniger als 256 Farben und sogar mit Alphakanal. Sowas habe ich auch schon mal gemacht, als ich ein PNG sehr stark komprimieren musste. Leider unterstützen die meisten Programme diese Modi aber nur zum Lesen. Zum Erstellen braucht man spezielle Tools wie pngquant (https://pngquant.org/).

Und selbst das ist noch nicht alles. Dazu hängt die Dateigröße auch noch davon ab, welche Heuristiken der Encoder beim Abspeichern verwendet hat. Da gibt es Tools wie OptiPNG (http://optipng.sourceforge.net/), die mehrere Kombinationen bruteforcen und so aus existierenden PNGs noch mal 10% - 20% rausholen.

Wie gesagt, die meisten Programme können sowas nicht. Wenn dann noch Animation dazu kommt, dann wird es wahrscheinlich noch schwieriger, ein Tool zu finden, das alles kann.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#10

AW: AnimatePNG

  Alt 31. Mär 2017, 16:59
Zitat:
Standardmäßig verwendet PNG meist 32 Bit pro Pixel
Und das Format verwende ich um auch den Alpha Kanal zu gewähren.
Ich möchte ja nicht nur die Bilder anzeigen sondern diese Ein\Ausblenden können ala.. .AlphaBlend und anderer Effekte.

Eine komprimierte 256Farben PNG würde dabei nur hinderlich sein.
Leider habe ich das mit dem AlphaBlend noch nicht hinbekommen es funktioniert irgendwie nicht warum da muss ich mich nochmal schlau machen.
Aber wie gesagt ich werkle hier mit 120 Frames in Realzeit bei 0% CPU herum besser geht's nicht.
War schon schwer genug GidiPlus ist nicht die schnellste API da muss man tricksen.

Zudem der Unterschied von 8it GIF / 32Bit PNG sollte einem die frage schon beantwortet haben warum APNG/PNG größer ist.

gruss

Geändert von EWeiss (31. Mär 2017 um 17:04 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 09:37 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