AW: AnimatePNG
Zitat:
|
AW: AnimatePNG
So habe den Konverter fertig.
@Delphi-Laie Was deine Datei angeht. Da liegt kein Problem im Code selber vor, dein Problem ist das die Datei einfach zu groß ist also die menge an Frames. Du hast 984 Frames diese mal 512 in der weite. Das bedeutet deine Datei hätte dann eine gesamt weite im Speicher von 503808 Pixeln. Das schafft die GDI+ nicht zu speichern warum auch immer.
Delphi-Quellcode:
Hier gibt es dann einen Win32Error.
function TfrmMain.SaveToPNG(FullName: PWideChar; img: GPImage): GPStatus;
var encoderCLSID: TGUID; begin GetEncoderClsid('image/png', encoderCLSID); Result := GdipSaveImageToFile(img, FullName, @encoderCLSID, nil); end; gruss |
AW: AnimatePNG
Aber das ist ja nicht ein großes Bild, sondern 984 einzelne. Da sollte die Anzahl der Frames keine Rolle spielen.
Im Moment kann ich mir das allerdings nicht anschauen, erst zu Hause. |
AW: AnimatePNG
Zitat:
Es gibt eine Möglichkeit die Bilder unskaliert umzuwandeln habe das aber im Moment einfach mal deaktiviert (nicht öffentlich gemacht) weil in meiner Anwendung 512x512 am besten aussieht. Zitat:
Und die stehen im Speicher hintereinander.
Delphi-Quellcode:
Zurück wird dann 1 Image geliefert das alle Frames enthält.
for K := 0 to FrameCount - 1 do
begin GPStatus(GdipImageSelectActiveFrame(img, @pGUID, K)); // Image zeichnen if (MaxSquareSize = 512) then begin GPStatus(GdipDrawImageRectRectI(Graphics, img, xStep + xP, yP, xS, yS, 0, 0, round(W), round(H), UnitPixel, nil, Abort, nil)); xStep := xStep + AniHeader.Width; end else begin GPStatus(GdipDrawImageRectI(Graphics, img, xStep, 0, round(W), round(H))); xStep := xStep + round(W); end; lblValue.Caption := 'Value = ' + IntToStr(K + 1); lblValue.Repaint; end; // graphics freigeben GPStatus(GdipDeleteGraphics(Graphics)); end;
Delphi-Quellcode:
Result := BitmapToImage(imgHDC);
gruss |
AW: AnimatePNG
Zitat:
Um es ein die analoge Welt zu übersetzen: Du packst das Blätter-Paket mit den Bildern aus und klebst alle Bilder hintereinander auf eine lange Papierrolle und versuchst diese abzuspielen. Das diese Rolle dann zu lang wird, um sie ohne "knittern" und "einreißen" bedienen zu können sollte eigentlich auf der Hand liegen. Versuche doch mal lieber den Ansatz, einfach die linke obere Ecke zu tackern und das Blätter-Paket wie ein Daumenkino zu bedienen. Da es dir schwer fällt von solchen abstrakten Sachen zu konkreten Code zu kommen: Immer nur das jeweils aktuelle Frame decodieren und anzeigen, nach dem Anzeigen dann verwerfen. Und nicht so schnell wie möglich zeichnen, sondern einfach nur stumpf die eingestellte Framerate. Stelle mal bewusst das Ausführen der Zeichnenroutine auf 25 FPS bzw. alle 40 ms. |
AW: AnimatePNG
Zitat:
Beschäftige dich doch erst mal damit bevor du irgendwelche Sprüche los lässt die kein Hand und kein Fuß haben. Da fällt mir ehrlich gesagt auch einiges schwer. Zitat:
Also ruhig Blut. Also Konstruktive Dinge wären durchaus angebracht. gruss |
AW: AnimatePNG
Zitat:
Der Ton macht die Musik! Zitat:
Zitat:
Zitat:
Konstruktive Vorschläge sind erst konstruktiv, wenn sie auch umgesetzt werden. |
AW: AnimatePNG
Zitat:
Was steht den da? BitmapToImage Das was ich meinte war der Beitrag (code da drüber). For k := bla, bla. BitmapToImage konvertiert lediglich 1 HBitmap in ein GDIplus fähiges Image. Zitat:
Was soll man von solchen Sprüchen halten. Zitat:
Sachlich bleiben ohne das sorry dumme Gewäsch. Und nun möchte ich dich bitten hier im Thread keinen Stress zu verursachen. gruss |
AW: AnimatePNG
@jaenicke
Hab mal ein Pic angehängt bei dem man sehen kann wie die Bilder temporär abgelegt werden bevor sie zu einem Image kombiniert werden. Man sieht nicht viel aber es lässt einen erahnen was passiert wenn man eine Datei mit 984 Frames bearbeiten muss. Ich glaube deshalb das GDI+ das einfach nicht schafft. 14 Frames.. gruss |
AW: AnimatePNG
Also, ich begrüße es, daß Emil sich einer solchen Herausforderung stellt und empfinde diesen Angriff auf ihn als deplaciert.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:03 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz