Hvordan bruger jeg Imagick inline?
Jeg har for en del år siden benyttet ImageMagick i PHP med exec uden problemer. Det var i forbindelse med upload af produktbilleder. Det var fint den gang, men nu har jeg et projekt, hvor jeg skal modificere billeder on the fly.Jeg har installeret ImageMagick på min Debian server. Har også installeret PHP library til Imagick.
Begge dele fungerer som de skal (problemet er mig)
Alle billeder som skal behendles, ligger som filer på webserveren, i struktureret format, hvor folder og filnavn er opbygget ens, men med fx et produktnummer foran en fast streng. (Ex 2435_default.jpg) hvor 2345 vil variere hele tiden.
Jeg kan godt fx lave en thumbnail med Imagick, som virker. Se følgende script.
<?php
header('Content-type: image/jpeg');
$image = new Imagick("pictures/2345_default.jpg");
$image->thumbnailImage(100, 100, true);
echo $image;
?>
Her er filnavnet hardcoded og det er ikke særlig smart :)
Jeg har så sørget for, at definere nogle variabler i min query-string, som den samler op... det virker også som de skal.
Men outputtet jeg får, er jo udelukkende et billede (som det skal være).
Hvis jeg includer filen i en anden PHP fil, hvor billedet skal vises, får jeg naturligvis den klassiske fejl: "Warning: Cannot modify header information - headers already sent by (output started at...."
Her kommer vi så til spørgsmålet.
Hvordan kan jeg få vist mit manipulerede billede midt på en anden side?
Egentlig ville jeg helst ikke skulle include en anden fil, men blot arbejde med Imagick direkte i den fil der skal vise billedet.
Uanset hvad jeg har prøvet, så får jeg enten indholdet af billedet ("����JFIFHH��C ��C ��,�"�� ��B!1AQ"") eller header fejlen.
Findes der en måde at outputte billedet uden af bruge header('Content-type: image/jpeg') ?
Håber virkelig der sidder en ImageMagick / Imagick ekspert der kan give de vise sten videre. Har allerede søgt i timevis på nettet, men uden held.
-Keld