AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Laden eines .webp Bildes?

Ein Thema von softtouch · begonnen am 4. Jul 2022 · letzter Beitrag vom 16. Nov 2022
Antwort Antwort
Benutzerbild von himitsu
himitsu
Online

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

AW: Laden eines .webp Bildes?

  Alt 4. Jul 2022, 14: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.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von Sinspin
Sinspin

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

AW: Laden eines .webp Bildes?

  Alt 4. Jul 2022, 14: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
Online

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

AW: Laden eines .webp Bildes?

  Alt 4. Jul 2022, 15: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}
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 4. Jul 2022 um 15:16 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Laden eines .webp Bildes?

  Alt 4. Jul 2022, 16:01
Mit der skia4delphi API sollte dies möglich sein.
Zumindest bringt es laut beschreibung alles für FMX CrossPlatform mit.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Benutzerbild von softtouch
softtouch

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

AW: Laden eines .webp Bildes?

  Alt 4. Jul 2022, 17:01
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.
  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
 
#6

AW: Laden eines .webp Bildes?

  Alt 5. Jul 2022, 13:21
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/
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
Rollo62

Registriert seit: 15. Mär 2007
4.240 Beiträge
 
Delphi 12 Athens
 
#7

AW: Laden eines .webp Bildes?

  Alt 5. Jul 2022, 14:00
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.
  Mit Zitat antworten Zitat
venice2
(Gast)

n/a Beiträge
 
#8

AW: Laden eines .webp Bildes?

  Alt 4. Jul 2022, 17:45
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!
Zitat:
somit suche ich nacheiner reinen Pascal Lösung ohne externe Abhängigkeiten.
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Laden eines .webp Bildes?

  Alt 4. Jul 2022, 19:01
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!
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.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
HolgerX

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

AW: Laden eines .webp Bildes?

  Alt 5. Jul 2022, 12:32
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.
(Ja ich Verwende Delphi 6 Pro und will NICHT wechseln!)
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 14:06 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