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
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

AW: AnimatePNG

  Alt 28. Mär 2017, 13:59
Kannst du grad nochmal sagen wo es grad hängt. Bin grad etwas raus sorry.
Der Aufruf sieht doch in Ordnung aus. Bis auf den vorletzten Parameter zumindest, dem du laut Internet eine Callback Funktion übergeben sollst.
Da passt false dann nicht.
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#2

AW: AnimatePNG

  Alt 28. Mär 2017, 14:03
Kannst du grad nochmal sagen wo es grad hängt. Bin grad etwas raus sorry.
Der Aufruf sieht doch in Ordnung aus. Bis auf den vorletzten Parameter zumindest, dem du laut Internet eine Callback Funktion übergeben sollst.
Da passt false dann nicht.
Es geht darum die Geschwindigkeit bzw. die Auslastung der CPU zu minimieren.
Die Funktion gdipDrawCachedBitmap ist dreimal so schnell wie die von mir aktuell verwendete GDIPDrawImageRectRectI.
Da gdipDrawCachedBitmap nur zwei Parameter hat Weite\Höhe habe ich das Problem GDIPDrawImageRectRectI zu ersetzen.

Muss mal sehn vielleicht finde ich noch eine anderer Lösung.

Zitat:
Da passt false dann nicht.
false ist OK
callback: BOOL; callbackData: Pointer

gruss

Geändert von EWeiss (28. Mär 2017 um 14:06 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

AW: AnimatePNG

  Alt 28. Mär 2017, 14:19
Achso, ich habs genau andersrum verstanden.
In der APNG Datei sind doch so viele Einzelbilder enthalten wie Frames in der Animation wenn ich das richtig verstanden habe.
Dann musst du ja nur alle Einzelbilder laden und nacheinander mit gdipDrawCachedBitmap zeichnen.

Wieso baust du dir denn überhaupt ein Bild in dem alle Einzelbilder enthalten sind um sie dann quasi beim Zeichnen wieder zu trennen?
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#4

AW: AnimatePNG

  Alt 28. Mär 2017, 14:31
Zitat:
Wieso baust du dir denn überhaupt ein Bild in dem alle Einzelbilder enthalten sind um sie dann quasi beim Zeichnen wieder zu trennen?
Baue ich ja nicht das ist das Standard Format von APNG.

gruss
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

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

AW: AnimatePNG

  Alt 28. Mär 2017, 14:38
Baue ich ja nicht das ist das Standard Format von APNG.
In der Datei stehen ein Standardbild und für jeden Frame ein weiterer Chunk mit dem PNG Bild für diesen Frame. Dort gibt es kein großes Bild.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#6

AW: AnimatePNG

  Alt 28. Mär 2017, 14:47
Baue ich ja nicht das ist das Standard Format von APNG.
In der Datei stehen ein Standardbild und für jeden Frame ein weiterer Chunk mit dem PNG Bild für diesen Frame. Dort gibt es kein großes Bild.
Verstehe jetzt nicht was du meinst.

EDIT:
Das Standard Bild gibt es aber auch nur weil ich dafür gesorgt habe, und die APNG von hinten lese. Zudem habe ich dem Header noch den Chunk "ANIM" hinzugefügt.
Normalerweise wird der Header bzw. die Chunks vom Anfang gelesen "IHDR" und bei den normalen APNG Dateien gibt es auch kein Standbild das man
mit normalen Bildanzeigern anzeigen könnte.

Ich bin aber am überlegen das Abwählbar zu machen.. später irgendwann
Es ist ein geschütztes Format das du auch mit anderen APNG Anzeiger Programmen nicht Animieren kannst.
Dort wird jeweils nur 1 Frame angezeigt.

gruss

Geändert von EWeiss (28. Mär 2017 um 14:55 Uhr)
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.073 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: AnimatePNG

  Alt 28. Mär 2017, 15:11
Baue ich ja nicht das ist das Standard Format von APNG.
In der Datei stehen ein Standardbild und für jeden Frame ein weiterer Chunk mit dem PNG Bild für diesen Frame. Dort gibt es kein großes Bild.
Verstehe jetzt nicht was du meinst.
Das APNG ist kein durchgehendes großes Bild mit Gesamtbreite = Frameanzahl * Einzelbildbreite.
Es ist ein Container mit mehreren einzelnen Bildern.
Die kann man wie ein Daumenkino einzeln "abspielen" und muss sie nicht auf eine Rolle zusammen tackern und hinterher von der Rolle wieder "ausschneiden".
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#8

AW: AnimatePNG

  Alt 28. Mär 2017, 14:40
Im Zweifelsfall kannst du halt auch aus dem großen Bild mit allen Frames beim Laden manuell eine Liste von Einzelbildern erstellen und diese dann mit gdipDrawCachedBitmap Zeichnen.
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  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 21:45 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