Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Laden eines .webp Bildes? (https://www.delphipraxis.net/210949-laden-eines-webp-bildes.html)

KodeZwerg 4. Jul 2022 16:01

AW: Laden eines .webp Bildes?
 
Mit der skia4delphi API sollte dies möglich sein.
Zumindest bringt es laut beschreibung alles für FMX CrossPlatform mit.

softtouch 4. Jul 2022 17:01

AW: Laden eines .webp Bildes?
 
Zitat:

Zitat von KodeZwerg (Beitrag 1508335)
Mit der skia4delphi API sollte dies möglich sein.
Zumindest bringt es laut beschreibung alles für FMX CrossPlatform mit.

Schon, aber das ist overkill und ich will auf keinen Fall abhängig von irgendwelchen 3rd. Party Komponenten sein. Damit bin ich schon mehrmals auf die Nase gefallen.

venice2 4. Jul 2022 17:45

AW: Laden eines .webp Bildes?
 
Zitat:

Zitat von KodeZwerg (Beitrag 1508335)
Mit der skia4delphi API sollte dies möglich sein.
Zumindest bringt es laut beschreibung alles für FMX CrossPlatform mit.

Es wurde doch ganz klar vom TE zitiert! :roll:
Zitat:

somit suche ich nacheiner reinen Pascal Lösung ohne externe Abhängigkeiten.

KodeZwerg 4. Jul 2022 19:01

AW: Laden eines .webp Bildes?
 
Zitat:

Zitat von venice2 (Beitrag 1508341)
Zitat:

Zitat von KodeZwerg (Beitrag 1508335)
Mit der skia4delphi API sollte dies möglich sein.
Zumindest bringt es laut beschreibung alles für FMX CrossPlatform mit.

Es wurde doch ganz klar vom TE zitiert! :roll:
Zitat:

somit suche ich nacheiner reinen Pascal Lösung ohne externe Abhängigkeiten.

Hmmm.... das kommt nun mal von Google... ohne externe Abhängigkeit, mir fiele jetzt nur auf die schnelle einen modernen Web-Browser zu embedden und darin das Bild darstellen zu lassen, wie man es speichert da bin ich überfragt aber dies könnte vielleicht eine Möglichkeit sein.

HolgerX 5. Jul 2022 12:32

AW: Laden eines .webp Bildes?
 
Hmm..

Ich glaube mit nativ Pascal wird das nichts...

Aber:

Die Tools unter
https://developers.google.com/speed/webp/download

herunterladen und dann kann per Commandozeilen Tool 'dwebp' das WebP dekodiert werden.
(https://developers.google.com/speed/webp/docs/dwebp)

Einfach per ShellExec mit den richtigen Parametern füttern und Du hast zu mindestens PNG, TIFF oder BMP.
Auch ist es möglich, per stdin das webp als Daten (ohne Zwischenspeicherung als Datei) zu übergeben und ebenso per Stdout wieder als Data zurück zu bekommen.

Hinweis:
'Precompiled WebP utilities and library for Linux, Windows and macOS / Precompiled WebP framework for iOS'

Somit sollte es auch unter anderen OS funktionieren.

Neutral General 5. Jul 2022 13:21

AW: Laden eines .webp Bildes?
 
Zitat:

Zitat von softtouch (Beitrag 1508339)
Schon, aber das ist overkill und ich will auf keinen Fall abhängig von irgendwelchen 3rd. Party Komponenten sein. Damit bin ich schon mehrmals auf die Nase gefallen.

Dann bin ich mir nicht sicher was du willst. Das einzige was dir sonst noch übrig bleibt ist das ganze selbst anzupacken:
https://developers.google.com/speed/webp/

Rollo62 5. Jul 2022 14:00

AW: Laden eines .webp Bildes?
 
Also ich würde dass im Zweifel mit Delphi4Skia machen, das unterstützt WebP.
Einfach mal ausprobieren, das ist relatin simpel einzubinden und ist notfalls auf allen Plattformen verfügbar.

jaenicke 5. Jul 2022 14:26

AW: Laden eines .webp Bildes?
 
Ja, mit Skia funktioniert das gut, das habe ich selbst schon ausprobiert, und es läuft auf allen Plattformen, die Delphi selbst unterstützt.

Rolf Frei 5. Jul 2022 14:39

AW: Laden eines .webp Bildes?
 
Aber dafür könnte man auch einfach die Delphi Klasse TWICImage (Kapselung der Windows Imaging Component) nutzen. Ok, ist nur für Windows, aber damit konvertiere ich massenweise WEBP Bilder.

Delphi-Quellcode:
            FWICImage := TWICImage.Create;
            try
              FWICImage.LoadFromFile(ImagesDir + ImgName + '_tmp.jpg');
              DoConvert := FWICImage.ImageFormat <> wifJpeg;
              if DoConvert then
              begin
                FWIcImage.ImageFormat := wifJpeg;
                FWICImage.SaveToFile(ImagesDir + ImgName);
              end;
            finally
              FWICImage.Free;
            end;
Hier in meinem Fall liegen die Bilder aber mit der Endung Jpg vor, obwohl es WEBP Bilder sind. Interessanter Weise hat der Webbrowser damit kein Problem. Mein Programm aber weldete ständig JPEG Fehler. Nach Analyse was da los ist, habe ich herausgefunden, dass das nicht JPG's sondern WEBP Bilder mit der Endung jpg sind. Teilsweise liegen die Bilder als JPG voer teilweise als WEBP, daher die Überprüfung in der Konvertierungroutine. Die TWICImage Klasse kann diese Dateien auch problemlos lesen und konvertieren.

himitsu 5. Jul 2022 15:17

AW: Laden eines .webp Bildes?
 
Der Webbrowser achtet auf den ContentType (image/jpeg), nicht auf den Namen (Dateierweiterung).
Aber meißtens gehen die davon aus, dass eh alle Webdesigner nichtskönnende Schlampen sind, und schaut sich den Dateiinhalt an, also was wirklich da drin ist.


TImage/TGraphic hatte früher auch immer nur auf die Dateiendung geachtet.
Daher mußte man bei Streams selbst dafür sorgen, dass die richtige Graphics-Klasse geladen ist.

ABER jetzt schauen die nach, was wirklich drin ist (zumindestens werden die 4 MagicBytes angesehn) ... drum kann man nun auch Image1.Picture.LoadFromStream nutzen, sowie TDBImage mit unterschiedlichen Bildformaten im BLOB (Stream).


TWICImage (Windows Imaging Component ) macht auch sowas (Inhalt ansehn).


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:17 Uhr.
Seite 2 von 4     12 34      

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