Avatar billede besoft Nybegynder
29. august 2009 - 17:36 Der er 3 kommentarer og
1 løsning

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 ("&#65533;&#65533;&#65533;&#65533;JFIFHH&#65533;&#65533;C                   &#65533;&#65533;C        &#65533;&#65533;,&#65533;"&#65533;&#65533;     &#65533;&#65533;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
Avatar billede olebole Juniormester
29. august 2009 - 17:42 #1
<ole>

Du kan ikke inkludere billedinformation i en HTML-side. Du kan:



- og så have din ImageMagick kode i pic.php

/mvh
</bole>
Avatar billede besoft Nybegynder
29. august 2009 - 17:57 #2
Hej Ole

Hvis du kunne se mit skrivebord lige nu, ville du nok grine... har lige banket hovedet så hårdt i det, at der er gået et stykke af.

Hvor pinligt..... 15 år som prof programmør, og så kunne jeg ikke engang huske det, til trods for, jeg bruger det på alle sites, hvor jeg har billeder i databasen. Pinligt!?

Men tak for hjælpen. Der er point som fortjent, for det virker som det skal.

-Keld
Avatar billede besoft Nybegynder
29. august 2009 - 19:25 #3
Smid et svar, så skyder jeg lidt point afsted i din retning.
Avatar billede olebole Juniormester
31. august 2009 - 15:10 #4
Hehe ... hvor er det nu lige, jeg kender den situation fra?  0;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester