![]() |
AnimatePNG
Projekt entfernt..
|
AW: AnimatePNG
Neue Version Hochgeladen.
Änderungen siehe Oben. gruss |
AW: AnimatePNG
Irgendwie schon seltsam..
Ich ändere den Alpha wert auf 64 Eigentlich sollte dadurch der Text Transparent werden wird er aber nicht. Die Farbe Blau sollte erhalten bleiben und nur der Alpha wert sich ändern. Stelle ich den Alpha wert auf 0 ist das Teil komplett schwarz sollte dann aber unsichtbar sein.
Delphi-Quellcode:
Siehe Pic.
// String zeichnen
GDIP_DrawTextToDC(hTempDC, IntToStr(AnimateGif.TimerInterval), rw, $40037BFA, 'LCDDisplayCapsSSK', 60, FontStyleBold, 0, 0); EDIT: Ok hat sich erledigt. Ich erstelle normalerweise einen Schatten um den Text. Wenn ich den jetzt aktiviere wird der Text schwarz wenn die Transparenz geändert wird. Muss halt für die Geschwindigkeitsanzeige den Schatten weglassen. gruss |
AW: AnimatePNG
Neue Version
Zitat:
Wird dann einfach nur eine neue Classe. gruss |
AW: AnimatePNG
Nur damit ich es verstehe...
Wofür animierte PNG? Sind doch viel zu viele Daten! Mavarik |
AW: AnimatePNG
Qualität, Optik sind bei PNG's einfach um längen besser. Die Animationen lassen sich recht einfach erstellen.
Und wenn ich mir angugg, was im Web verwendet wird, sind das nicht wirklich viel Daten. Was sind schon 1.5 MB (die größte die ich hier hab). Die kleinste liegt grad mal bei 18 KByte...... |
AW: AnimatePNG
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
Ich kann das Programm leider nicht starten. Zuerst bekomme ich das Fenster "AnimatePNG.exe funktioniert nicht mehr" und danach bekomme ich den Fehler im Anhang. Wenn ich den wegklicke beendet sich das Programm. Windows 7 64 Bit, Adminrechte |
AW: AnimatePNG
Fliegt bei mir auch direkt raus, nur daß ich nichtmal die Fehlermeldung am Ende bekomme. Win10 x64.
Sherlock |
AW: AnimatePNG
Zitat:
Die Auslastung der CPU liegt so gut wie bei 0 und die gleiche Datei in Gif liegt bei 10 -> %. Zudem kannst du GIF nur mit 32Bit Anwendungen verwenden was bei APNG nicht der fall ist. Zudem ist PNG allemal besser wie GIF von der Qualität her. EDIT: Nur mal zur Info. Habe unten ein GIF angehängt was glaubst du wie groß es ist? 4,14MB mit 32 Frames. (Sind das zu viele Daten) Für mich nicht bei einer Kapazität meiner Festplatte von mehreren Terrabytes. gruss |
AW: AnimatePNG
Zitat:
Dann weiß ich auch nicht was ihr für Gif's verwendet. gruss |
AW: AnimatePNG
Ok ich lade mal eine GIF Datei hoch zum testen.
gruss |
AW: AnimatePNG
Okay mit installierter Font und einem Bild im images Ordner funktionierts.
Du solltest aber denke ich mal schauen, dass das Programm nicht komplett abschmiert wenn die Font nicht installiert ist oder keine Bilder im images Ordner liegen. Ansonsten siehts gut aus. Es ist nur vielleicht nicht intuitiv, dass die Animation langsamer wird umso weiter rechts der Schiebregler ist. |
AW: AnimatePNG
:stupid:
Erstaunlich: Kaum macht man es richtig, gehts. Kann ja keiner ahnen. Sherlock |
AW: AnimatePNG
Zitat:
Weil es nun einmal so ist das bei 2ms die Animation schneller ist also in dem Fall ist weniger mehr. ;) Zitat:
Ist nicht ganz so einfach wie mit GDI. Ach so habe ein GIF hochgeladen damit könnt ihr produktiv testen. Zitat:
gruss |
AW: AnimatePNG
Zitat:
Sherlock |
AW: AnimatePNG
Zitat:
Ich mach das jetzt mit dem Font das muss Dynamisch gehen ohne Installation. :wall: gruss |
AW: AnimatePNG
Zitat:
Weiter rechts => schneller Da interessiert den Benutzer nicht ob es jetzt (intern) die Zeit zwischen den Frames oder die FPS oder sonst irgendwas darstellt |
AW: AnimatePNG
Zitat:
Ich habe nur gedacht das dies eigentlich der logische schritt ist weniger ms dann sollte die Trackbar auch in den Minus Bereich gehen. gruss |
AW: AnimatePNG
Zitat:
gruss |
AW: AnimatePNG
OK, aber was ist die Anwendung für Animierte PNG's? Für Bildfolgen wie die Wait-Animation unter FMX, ok, aber alles was länger ist nimmt man doch eher einen Codec... Oder verstehe ich etwas nicht?
|
AW: AnimatePNG
Zitat:
Mit dieser Classe wenn mal fertig hast du viele Anwendungs Möglichkeiten. Diese ist ja nicht nur darauf ausgelegt Animierte Bilder wieder zugeben. Zitat:
Zudem müsste ich dann die Strips nicht erst noch erstellen sondern kann fertige GIF's einfach um konvertieren und gut ist. Wenn du ein GIF hast mit 100 Frames dann kannst du dir bestimmt vorstellen was für eine Arbeit das ist jedes Frame von Hand zu extrahieren und in einem Strip zur Verfügung zu stellen. So hat man dann nur 1 Bild. gruss |
AW: AnimatePNG
Neue Version oben.
TrackBar umgedreht. @Neutral General Jetzt kannst du das Problem sehen was ich meine. Wenn die TrackBar jetzt nach oben gezogen wird werden die Werte kleiner logisch da kleinere werte die Animation schneller machen. Ganz links bist du dann auf 100. Ehrlich gesagt sieht komisch aus und ist Gewöhnungsbedürftig aber ich kann keine anderen Werte anzeigen als die, die tatsächlich aktuell verwendet werden. Der Font wird jetzt dynamisch geladen musste dafür fast die komplette Lib umbauen.. aber was soll's Ich möchte also bitten das ihr den Font vorher aus den System Font Ordner löschen tut wenn ihr ihn vorher Installiert habt. Der Name ist LCDDisplayCapsSSK gruss |
AW: AnimatePNG
Zitat:
Die Wiki sagt ![]() das die Frames in den GCE Block geschrieben werden. Z.. 324 Zitat:
Vor allem dann nicht wenn die Animation dabei läuft. Möchte jemand helfen ? Falls nicht dann schenke ich mir das mit dem speichern von Gif. Und nein ich möchte keine Komponente dafür nutzen auch wenn das vielleicht schon fertig ist. (Es geht ja soweit alles) Zitat:
gruss |
AW: AnimatePNG
Bei mir stürzt die aktuelle Version beim Start direkt ab. Liegt ein .gif im Bildordner sehe ich davon ein Standbild während Windows die Anwendung beendet.
Da fehlt wohl ein wenig Fehlerbehandlung. Sei es ein simples TApplicationEvents mit zugewiesenem OnException oder einer Lösung wie ![]() Zitat:
|
AW: AnimatePNG
Vielleicht hilft dir die Beschreibung weiter:
![]() Die ist ein wenig genauer, was die Beschreibung betrifft :) Wenn ich das richtig verstehe, kann es (da der GCE-Block optional ist) für jeden Frame einen solchen Block geben (aber nur 89'er Standard) der zusätzliche infos hat. Das setzen und abfragen von Bits sollte ja kein Problem sein oder ? ansonsten hier die kurze Variante: Setzen von Bits: Wert OR Bitmaske Abfragen von Bits: (Wert AND Bitmaske) = 0/1 Und für die Bildung noch dieser Link: ![]() |
AW: AnimatePNG
Zitat:
gruss |
AW: AnimatePNG
Zitat:
Wenn ein Bild im Ordner und die Anwendung gestartet wird habe ich keinerlei Probleme Der Font wird temporär registriert und beim beenden entfernt. Und ja ich nutze madExcept aber nur intern bei mir. Liefere aber keine Exe Dateien damit aus. Ich mache die Prüfung noch fertig ob Dateien im Ordner sind danach lade ich den Source hoch. Wer dann noch Interesse hat kann es dann selbst korrigieren bzw. eine Meldung hier abgegeben was den Fehler verursacht. gruss |
AW: AnimatePNG
Zitat:
|
AW: AnimatePNG
Zitat:
So als wenn ich nach einem Saunagang ins Eiskalte Wasser springen würde. Lade den source nachher hoch wenn da jemand für Gif ein Interesse hat das noch zu addieren kann er mir ja sagen wie es geht. Werde es in dem Fall dann noch hinzufügen. gruss |
AW: AnimatePNG
Neue Version oben.
Es wird jetzt ein Dialog angezeigt wenn keine Datei\en im Images Folder liegen. gruss |
AW: AnimatePNG
Letztes Update für Heute
•- Fehler mit dem Fenster Schatten behoben. •- Bild wird nicht mehr Skaliert wenn kleiner als der Grafik Container. Source include.. bye do what you want what your not want to do gruss |
AW: AnimatePNG
Funktioniert bei mir auch nicht, gleich nach dem Programmstart gibt es die Fehlermeldung "...hat ein Problem festgestellt und muß beendet werden".
Dabei habe ich die Verzeichnisstruktur komplett übernommen und lcd.ttf explizit bei Windows registriert (bzw. registrieren lassen). |
AW: AnimatePNG
Zitat:
W10?, Aero aus oder nicht vorhanden. Aber bei mir geht es selbst mit deaktivierten Aero. Die Anwendung wird dann nur Schwarz angezeigt. W10. Nun kein gewähr. (Frage mich nur warum ich den QuellText hochgeladen habe wenn ihn keiner nutzt) Siehe Pic. gruss |
AW: AnimatePNG
Hmm..
Habe mir deinen Src mal vorgenommen.. Da ich nur Delphi 6 habe, musste ich die ganzen Regionen entfernen, deine File.. Sachen strkt auf WideString und W-Funktionen umstellen und siehe da, läst sich unter D6 kompilieren, starten und debuggen.. Erster Fehler:
Delphi-Quellcode:
Wenn ich nun das korrigiert habe (setlength auf 1) kann ich das ganze starten.
procedure TAnimateGif.LoadGif;
var FrameDelay: TFrameDelay; DC: HDC; GuidFDT: TGUID; begin gp.FrameCount := 0; if GetGifFrameCount(gp.GifImage[SelectedIndex], gp.FrameCount) = S_OK then begin If (gp.FrameCount - 1) = 0 then begin SetLength(FrameDelay, 0); // <- Hier das Array löschen FrameDelay[0] := 0; // <- Aber hier auf das erste (nicht vorhanden) Element zugreifen! FrameLoopCount := 0; LoopCount := FrameLoopCount + 1; CurGifPlayInfo.GifDelay := lFrameDelay[0]; // Und wo kommt das array nun schon wieder her (Ich weis GLOBAL) CurGifPlayInfo.GifFrame := 1; CurGifPlayInfo.GifFrames := gp.FrameCount; CurGifPlayInfo.GifLoop := LoopCount - 1; CurGifPlayInfo.GifLoops := FrameLoopCount; // Bild anzeigen DC := GetDC(GraphicContainer); DrawGifFrame(gp.GifImage[SelectedIndex], GuidFDT, ShowFrame, DC); end else begin Ich kann dann noch sehen, dass das Formular erstellt wird und das erste GIF dort angezeigt wird. Danach erhalte ich 4 Exceptions und die App schmiert ab ;) . Da ich auf alle deine Funktionen Haltepunkte gesetzt hatte, außer auf Result := SKAERO_DefWindowProc(WinHandle, Msg, wP, lP) da dies ja andauernd auch durch steppen immer wieder aufgerufen wird, konnte ich erkennen, dass die Exception aus deiner DLL kommen! Alles andere läuft durch. Zu meinem System: Windows 8.1 Home. Delphi 6 Prof Da ja auch andere beim Starten direkt die Exceptions um die Ohren gehauen bekommen, gehe ich von einem Bug auf der anscheinend nur bei Dir nicht auftritt... |
AW: AnimatePNG
Zitat:
Wieder mal eine seltsame Sache keine Problem hier sieht man an den Bildern. Mich würde mal interessieren welche Gif Datei du verwendest. ;) EDIT: Ich komme hier gar nicht rein!
Delphi-Quellcode:
If (gp.FrameCount - 1) = 0 then
Ich behaupte also das du ein Nicht animiertes GIF verwendest. (Das habe ich noch nicht probiert) ![]() gruss |
AW: AnimatePNG
Liste der Anhänge anzeigen (Anzahl: 1)
Hmm..
Wenn ich ein Animiertes GIF verwende, dann knallt es schon bei SKAERO_PaintDoubleBuffer(WinHandle, ps.HDC); in
Delphi-Quellcode:
(Fehlermeldung angehängt..)
WM_PAINT:
begin BeginPaint(WinHandle, ps); SKAERO_PaintDoubleBuffer(WinHandle, ps.HDC); EndPaint(WinHandle, ps); Result := 0; Exit; end; Bei einem nicht anmierten Gif wird diese geladen und angezeigt, jedoch knallt es dann später mit einer vergleichbaren Fehlermeldung. Diese Meldungen kann ich auch nicht durch try.. except abfangen, sollten somit aud deiner DLL kommen ;) Edit: Auch mit deinem Testbild knallt es bei SKAERO_PaintDoubleBuffer.. Mit Delphi 6 und dem TGifImage läst sich das Bild jedoch problemlos anzeigen... (Hab da nen selbstgebauten PictureViewer ;) ) |
AW: AnimatePNG
Seltsam aber ich kann es leider nicht nachvollziehen.
Danke. Zitat:
gruss |
AW: AnimatePNG
Hmm..
Zitat:
Schön.. Und womit lädst Du dann das Gif? Auch GDI+ ist (entfernt) nichts anderes wie eine Komponente.. Und TGifImage kannste ja auch als Anhalt nehmen. Brauchst dort doch nur die VCL Sachen rausschmeißen und kannst dann auch ohne VCL damit arbeiten.. Da haste alles Drinnen, um eine Gif-Datei zu laden, incl. Animated. |
AW: AnimatePNG
Zitat:
Schließlich packst du dafür keine Komponente auf die Form oder? ![]() Umbauen möchte ich jetzt da nichts mehr. Hat mich viel zeit gekostet das zu implementieren. Meine DLL würde dir nichts nutzen in Verbindung mit D6. Installiere 2010 dann können wir darüber reden. ;) TGifImage basiert auf GDI zu viel Umstellungen davon etwas zu verwenden. gruss |
AW: AnimatePNG
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03: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