AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Laden eines .webp Bildes?

Ein Thema von softtouch · begonnen am 4. Jul 2022 · letzter Beitrag vom 16. Nov 2022
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
Benutzerbild von softtouch
softtouch

Registriert seit: 13. Feb 2015
Ort: Kerpen
235 Beiträge
 
Delphi 12 Athens
 
#1

Laden eines .webp Bildes?

  Alt 4. Jul 2022, 12:18
Ich muss einige .webp Bilder laden und als jpeg speichern, und das unter FMX.
Leider habe ich bisher keine Weg gefunden, dies zu bewerkstelligen ohne irgendwelche externen dll oder dylib.
Hat jemand vielleicht eine Idee wie ich dies realisieren kann, ohne eine Abhängigkeit von externen Komponenten?
  Mit Zitat antworten Zitat
Benutzerbild von Sinspin
Sinspin

Registriert seit: 15. Sep 2008
Ort: Dubai
691 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: Laden eines .webp Bildes?

  Alt 4. Jul 2022, 13:07
Die webp-est, oder google kann alles besser Pest.
Wenn ich die englischen Wikipedia Einträge dazu richtig verstanden habe dann gibt es von google seite eine Referenz Implementierung. Um den Rest muss man sich selber kümmern.
Da es aber schon seit Jahren von vielen Programmen unterstüzt wird sollte da auch Freeware existieren die du zur Not erstmal verbauen oder verwenden könntest.
Als Fan von IrfanView ist dieses für mich das Mittel der Wahl.
Stefan
Nur die Besten sterben jung
A constant is a constant until it change.
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
972 Beiträge
 
Delphi 6 Professional
 
#3

AW: Laden eines .webp Bildes?

  Alt 4. Jul 2022, 13:44
Hmm..

ich habe vor Jahren mal mit WebP gebastelt und damit einen Wraper für TBitmap (VCL) erstellt.

Damit konnte ich das .webp laden/speichern unter Verwendung der libwebp.dll.

Dieses Bitmap kann dann einem jpeg zugewiesen werden und somit ein jpeg von einem webp erzeugt werden.
Ob dieses mit dem TBitmap von FMX funktionniert, weiß ich nicht...

Wenn du die Lösung als Beispiel haben willst, dann kann ich es ja mal hochladen, alternativ google mal danch Delhi und libwebp.dll...

(ist halt bei mir nur eine rudimentäre Bastelarbeit, die irgendwie funktioniert )
(Ja ich Verwende Delphi 6 Pro und will NICHT wechseln!)
  Mit Zitat antworten Zitat
Benutzerbild von MyRealName
MyRealName

Registriert seit: 19. Okt 2003
Ort: Heilbronn
679 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Laden eines .webp Bildes?

  Alt 4. Jul 2022, 13:46
Hier gibt es eine Bibliothek : https://github.com/Wykerd/delphi-webp
Sind auch Beispiele da, die Dir zeigen, wie es geht
  Mit Zitat antworten Zitat
Benutzerbild von softtouch
softtouch

Registriert seit: 13. Feb 2015
Ort: Kerpen
235 Beiträge
 
Delphi 12 Athens
 
#5

AW: Laden eines .webp Bildes?

  Alt 4. Jul 2022, 13:48
Hier gibt es eine Bibliothek : https://github.com/Wykerd/delphi-webp
Sind auch Beispiele da, die Dir zeigen, wie es geht
Danke, das ist leider nur VCL. Ich muss eine Crossplatform Lösung finden (Windows, Mac, Linux, Android etc.), somit suche ich nacheiner reinen Pascal Lösung ohne externe Abhängigkeiten.
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
972 Beiträge
 
Delphi 6 Professional
 
#6

AW: Laden eines .webp Bildes?

  Alt 4. Jul 2022, 13:53
Hmmm..

Hier gibt es eine Bibliothek : https://github.com/Wykerd/delphi-webp
Sind auch Beispiele da, die Dir zeigen, wie es geht
Danke, das ist leider nur VCL. Ich muss eine Crossplatform Lösung finden (Windows, Mac, Linux, Android etc.), somit suche ich nacheiner reinen Pascal Lösung ohne externe Abhängigkeiten.


Ich denke ohne libwebp Lib wird es nicht gehen, es gibt keine 'reine' Pascal Implementation.
unter
https://github.com/bgrabitmap/webp

ist eine Lazarus Version, zumindestens für Win32/64/Unix....
(Ja ich Verwende Delphi 6 Pro und will NICHT wechseln!)
  Mit Zitat antworten Zitat
Benutzerbild von Sinspin
Sinspin

Registriert seit: 15. Sep 2008
Ort: Dubai
691 Beiträge
 
Delphi 10.3 Rio
 
#7

AW: Laden eines .webp Bildes?

  Alt 4. Jul 2022, 14:20
Die Lib selber kann man laut google für verschiedene Plattformen übersetzen. (Es gibt schon fertiges für Linux, Windows and macOS)
WEBP Sources
Du musst dann nur pro Plattform sehen welche lib du verwedest.

Ich glaube nicht das sich jemand antut alles nach Pascal zu übersetzen und es aktuell zu halten.
Stefan
Nur die Besten sterben jung
A constant is a constant until it change.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#8

AW: Laden eines .webp Bildes?

  Alt 4. Jul 2022, 15:27
Als .obj kompiliert, zusammen mit einer Pascal-Header-Unit (ähnlich einer Unit für DLL-Imports),
ließe es sich auch in die EXE einkompilieren linken.

siehe z.B. ZLib/Zip, Jpeg, PNG und RegEx im Delphi.
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von Sinspin
Sinspin

Registriert seit: 15. Sep 2008
Ort: Dubai
691 Beiträge
 
Delphi 10.3 Rio
 
#9

AW: Laden eines .webp Bildes?

  Alt 4. Jul 2022, 15:40
Geht das Multiplattform? Ich habe .lib mal verwendet um V2M Dateien abspielen zu können. Aber nur unter Windows 32. Ich denke nicht das das einfach so für 64Bit / Linux / ARM geht.
Stefan
Nur die Besten sterben jung
A constant is a constant until it change.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#10

AW: Laden eines .webp Bildes?

  Alt 4. Jul 2022, 16:12
Je nach Platform braucht man eine andere "LIB",
da Diese ja vorkompiliert sind und demnach nur für je eine Platform möglich sind.


Also ob man das statisch oder dynamisch linkt (gegen eine DLL/Library-Datei)
oder ob man das in die Anwendung einkompilier/linkt (den Code importiert).

Teilweise gibt es in einigen OS bereits etwas, was man direkt verwenden kann.
z.B. denke ich mal, dass webp im Android enthalten sein wird und man da Funktionen via Java aufrufen könnte.

bekanntes Beispiel: im Windows greift man direkt auf die Webcam zu und nutzt irgendeine Barcode-Lib,
aber im Android/iOS könnte man auch eine Action der Camera-App ansprechen und sich von ihr den Barcode geben lassen.

z.B.
hier wird nur für Win32 oder Win64 etwas "in die EXE gelinkt", während bei den anderen Compilern nur gegen eine entsprechende LIB ge-/verlinkt wird (welche vermutlich von Delphi mitgegeben wird).
Zitat:
Delphi-Quellcode:
{$IFDEF MACOS}
  {$IF defined(CPUARM)}
    {$IFDEF IOS}   //IOS devices
    PU = '';
    LIBPCRE = 'libpcre.a';
    {$DEFINE STATIC_LIB}
    {$ELSE}        //OSX
    PCRELib = '/usr/lib/libpcre.dylib';
    {$DEFINE DYNAMIC_LIB}
    {$ENDIF}
  {$ELSE}
    {$IFDEF IOS}   //IOS Simulator
    PCRELib = 'libpcre.dylib';
    {$ELSE}        //OSX
    PCRELib = '/usr/lib/libpcre.dylib';
    {$ENDIF}
    {$DEFINE DYNAMIC_LIB}
  {$ENDIF}
{$ENDIF MACOS}
{$IFDEF LINUX}
  PU = '';
{$IFDEF PIC}
  LIBPCRE = 'libpcre_PIC.a';
{$ELSE  PIC}
  LIBPCRE = 'libpcre.a';
{$ENDIF PIC}
  {$DEFINE STATIC_LIB}
{$ENDIF LINUX}
{$IFDEF MSWINDOWS}
  {$IFDEF CPUX86}
  PU = '_';
  {$ELSE}
  PU = '';
  {$ENDIF}
{$ENDIF}
{$IFDEF ANDROID}
  PU = '';
  LIBPCRE = 'libpcre.a';
  {$DEFINE STATIC_LIB}
{$ENDIF ANDROID}
{$IFDEF PCRE16}
  PCREname = 'pcre16_';
{$ELSE}
  PCREname = 'pcre_';
{$ENDIF}
{$EXTERNALSYM PCREname}

{$IFDEF NEXTGEN}
 {$NODEFINE pcre_study}
 {$NODEFINE pcre_compile}
 {$NODEFINE pcre_compile2}
{$ENDIF}

...

{$IF Declared(PCRELib)}
var
  _PCRELib: THandle;
{$ENDIF}

{$IFDEF MSWINDOWS}
  {$IFDEF PCRE16}
    {$IF Defined(Win32)}
      {$L pcre16_study.obj}
      {$L pcre16_compile.obj}
      {$L pcre16_config.obj}
      {$L pcre16_dfa_exec.obj}
      {$L pcre16_exec.obj}
      {$L pcre16_fullinfo.obj}
      {$L pcre16_get.obj}
      {$L pcre16_maketables.obj}
      {$L pcre16_newline.obj}
      {$L pcre16_ord2utf16.obj}
      {$L pcre16_refcount.obj}
      {$L pcre16_tables.obj}
      {$L pcre16_string_utils.obj}
      {$L pcre16_ucd.obj}
      {$L pcre16_valid_utf16.obj}
      {$L pcre16_version.obj}
      {$L pcre16_xclass.obj}
      {$L pcre16_default_tables.obj}
    {$ELSEIF Defined(Win64)}
      {$L pcre16_study.o}
      {$L pcre16_compile.o}
      {$L pcre16_config.o}
      {$L pcre16_dfa_exec.o}
      {$L pcre16_exec.o}
      {$L pcre16_fullinfo.o}
      {$L pcre16_get.o}
      {$L pcre16_maketables.o}
      {$L pcre16_newline.o}
      {$L pcre16_ord2utf16.o}
      {$L pcre16_refcount.o}
      {$L pcre16_string_utils.o}
      {$L pcre16_tables.o}
      {$L pcre16_ucd.o}
      {$L pcre16_valid_utf16.o}
      {$L pcre16_version.o}
      {$L pcre16_xclass.o}
      {$L pcre16_default_tables.o}
    {$ENDIF}
  {$ELSE}
    {$IF Defined(Win32)}
      {$L pcre_study.obj}
      {$L pcre_compile.obj}
      {$L pcre_config.obj}
      {$L pcre_dfa_exec.obj}
      {$L pcre_exec.obj}
      {$L pcre_fullinfo.obj}
      {$L pcre_get.obj}
      {$L pcre_maketables.obj}
      {$L pcre_newline.obj}
      {$L pcre_ord2utf8.obj}
      {$L pcre_refcount.obj}
      {$L pcre_tables.obj}
      {$L pcre_ucd.obj}
      {$L pcre_valid_utf8.obj}
      {$L pcre_version.obj}
      {$L pcre_xclass.obj}
      {$L pcre_default_tables.obj}
    {$ELSEIF Defined(Win64)}
      {$L pcre_study.o}
      {$L pcre_compile.o}
      {$L pcre_config.o}
      {$L pcre_dfa_exec.o}
      {$L pcre_exec.o}
      {$L pcre_fullinfo.o}
      {$L pcre_get.o}
      {$L pcre_maketables.o}
      {$L pcre_newline.o}
      {$L pcre_ord2utf8.o}
      {$L pcre_refcount.o}
      {$L pcre_tables.o}
      {$L pcre_ucd.o}
      {$L pcre_valid_utf8.o}
      {$L pcre_version.o}
      {$L pcre_xclass.o}
      {$L pcre_default_tables.o}
    {$ENDIF}
  {$ENDIF}
{$ENDIF MSWINDOWS}
$2B or not $2B

Geändert von himitsu ( 4. Jul 2022 um 16:16 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


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 00:47 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