Thread Verfasser: Abrafax75
Thread ID: 1857
Thread Info
Es gibt 3 Beiträge zu diesem Thema, und es wurde 426 Mal angesehen.
 Thema drucken
Fixed: GD-Lib-Fehler in der Galerie (Wasserzeichen)
Abrafax75
Hallo zusammen,

ich bekomme in der Galerie immer folgenden Fehler:
- imagecreatefrompng(): gd-png: libpng warning: iCCP: known incorrect sRGB profile"
- infusions/gallery/photos.php
- Zeile 129
- $copyright = ImageCreateFromPNG($cop);
- PHP-Version 8.2

Ich verwende die V9.03.110, allerdings taucht dieser Fehler auch bei der V9.20.00 auf.

Lösung:
Das Wasserzeichen (.png) in den Optionen "für Web speichern" oder "sRGB einbinden". Das funktioniert z.B. mit PhotoShop. Der Fehler in der GD-Lib kann nur vermieden werden, wenn in der Quelldatei das Farbprofil eingebunden ist.
Bearbeitet von Abrafax75 am 29. August 2023 14:17:03
https://www.krelli.de
Mods, Hacks und Infusionen für PHP-Fusion v9
Information:
PHP Version: 8.2.x •  MySQL Version: 8.0 •  PHP-Fusion: v9 Stable
 
Krelli
Der Fehler beim Verarbeiten von PNG und GIF Grafiken beruht auf einem bekannten Bug, der im GD-Modul von PHP 8.x enthalten ist.
So ist es z.B. auch nicht mehr so einfach möglich, mittels GD-Funktionen transparente und animierte Grafiken zu verarbeiten. Transparente Bereiche werden dann mit der Index-Farbe aus dem Farbprofil gefüllt. Je nach Farbprofil der verwendeten Grafik ist diese festgelegte Indexfarbe immer wieder eine andere.
Das bedeutet, das Transparenzen willkürlich gefüllt werden. Schwarz oder weiß mag da noch einigermaßen annehmbar sein, aber es ergeben sich auch oft völlig andere Farben: lila, grün, rot gelb, ... Das sieht natürlich als Füllfarbe für Hintergründe grottig aus.
Die beste Lösung ist: sämtliche Verarbeitungen von Grafiken nicht mehr mittels GD-Funktionen, sondern ImageMagick durchzuführen. Es bietet qualitativ deutlich bessere Ergebnisse, unterstützt Transparenzen und animierte Grafiken. Insbesondere bei Größenänderungen von animierten GIFs erleichtert es die Arbeit enorm. Wofür man in GD zum Zerlegen in Einzelframes, danach Frames einzeln Verkleinern und am Ende alle Einzelbilder wieder zu animierter Grafik zusammenzufügen, aufwändigen umfangreichen Code erstellen musste (es gibt im Netz fertige PHP-Classes, die man einbinden konnte und die das erledigt haben, diese sind aber mit aktuellem PHP nicht mehr kompatibel) genügen mit Imagick ein paar Zeilen Code.
Das Modul php-imagick sollte in nahezu allen vernünftigen Webhosting-Umgebungen mit aktuellen PHP-Versionen standardmäßig vorhanden sein. Imagick ist aber meines Wissens nur auf Linuxservern vorhanden. Wer auf Windows hostet hat das Nachsehen und muss weiter mit GD werkeln.
Mittels Abfrage in PHP, ob das Modul php-imagick geladen ist, kann man Fehler abfangen und bei fehlender Unterstützung autom. auf GD als Notlösung zurückgreifen.
Information:
PHP Version: 8.2.x •  MySQL Version: Nicht ausgewählt •  PHP-Fusion: IPv9-DE-MOD
 
Rolly8-HL

Zitat

imagick
imagick module enabled
imagick module version 3.7.0
imagick classes Imagick, ImagickDraw, ImagickPixel, ImagickPixelIterator, ImagickKernel
Imagick compiled with ImageMagick version ImageMagick 6.9.11-60 Q16 x86_64 2021-01-25 https://imagemagick.org
Imagick using ImageMagick library version ImageMagick 6.9.11-60 Q16 x86_64 2021-01-25 https://imagemagick.org
ImageMagick copyright (C) 1999-2021 ImageMagick Studio LLC
ImageMagick release date 2021-01-25
ImageMagick number of supported formats: 237
ImageMagick supported formats 3FR, 3G2, 3GP, AAI, AI, APNG, ART, ARW, AVI, AVIF, AVS, BGR, BGRA, BGRO, BIE, BMP, BMP2, BMP3, BRF, CAL, CALS, CANVAS, CAPTION, CIN, CIP, CLIP, CMYK, CMYKA, CR2, CR3, CRW, CUR, CUT, DATA, DCM, DCR, DCX, DDS, DFONT, DNG, DPX, DXT1, DXT5, EPDF, EPI, EPS, EPS2, EPS3, EPSF, EPSI, EPT, EPT2, EPT3, ERF, FAX, FILE, FITS, FRACTAL, FTP, FTS, G3, G4, GIF, GIF87, GRADIENT, GRAY, GRAYA, GROUP4, H, HALD, HDR, HEIC, HISTOGRAM, HRZ, HTM, HTML, HTTP, HTTPS, ICB, ICO, ICON, IIQ, INFO, INLINE, IPL, ISOBRL, ISOBRL6, J2C, J2K, JBG, JBIG, JNG, JNX, JP2, JPC, JPE, JPEG, JPG, JPM, JPS, JPT, JSON, K25, KDC, LABEL, M2V, M4V, MAC, MAGICK, MAP, MASK, MAT, MATTE, MEF, MIFF, MKV, MNG, MONO, MOV, MP4, MPC, MPG, MRW, MSL, MTV, MVG, NEF, NRW, NULL, ORF, OTB, OTF, PAL, PALM, PAM, PATTERN, PBM, PCD, PCDS, PCL, PCT, PCX, PDB, PDF, PDFA, PEF, PES, PFA, PFB, PFM, PGM, PGX, PICON, PICT, PIX, PJPEG, PLASMA, PNG, PNG00, PNG24, PNG32, PNG48, PNG64, PNG8, PNM, POCKETMOD, PPM, PREVIEW, PS, PS2, PS3, PSB, PSD, PTIF, PWP, RADIAL-GRADIENT, RAF, RAS, RAW, RGB, RGBA, RGBO, RGF, RLA, RLE, RMF, RW2, SCR, SCT, SFW, SGI, SHTML, SIX, SIXEL, SPARSE-COLOR, SR2, SRF, STEGANO, SUN, TEXT, TGA, THUMBNAIL, TIFF, TIFF64, TILE, TIM, TTC, TTF, TXT, UBRL, UBRL6, UIL, UYVY, VDA, VICAR, VID, VIDEO, VIFF, VIPS, VST, WBMP, WEBM, WEBP, WMV, WPG, X, X3F, XBM, XC, XCF, XPM, XPS, XV, XWD, YCbCr, YCbCrA, YUV


Steht bei mir in der PHP Information

Zitat

Insbesondere bei Größenänderungen von animierten GIFs erleichtert es die Arbeit enorm. Wofür man in GD zum Zerlegen in Einzelframes, danach Frames einzeln Verkleinern und am Ende alle Einzelbilder wieder zu animierter Grafik zusammenzufügen, aufwändigen umfangreichen Code erstellen musste (es gibt im Netz fertige PHP-Classes, die man einbinden konnte und die das erledigt haben, diese sind aber mit aktuellem PHP nicht mehr kompatibel) genügen mit Imagick ein paar Zeilen Code.


Mache das mit einem php-gif-resizer.

Frage: Was muss ich machen wenn ich den Modul php-imagick dazu benutzen möchte.
Gruß Rolly8-HL
Was für Andere Wichtig ist muss für mich nicht genauso Wichtig sein!
Bin Dickkopf Unbelehrbar mache aus Protest nicht das was andere für Richtig halten!
Das gibt einem zu Denken oder?
Information:
PHP Version: Nicht ausgewählt •  MySQL Version: Nicht ausgewählt •  PHP-Fusion: Nicht ausgewählt
 
Springe ins Forum: