Avatar billede M_Paaske Nybegynder
08. februar 2011 - 07:17 Der er 6 kommentarer og
1 løsning

PHP: Exec() og ImageMagick. Brug af binære scripts i PHP-script

Hej Eksperter

Jeg er ved at udvikle en hjemmeside, der blandt meget andet håndterer en masse billeder.

Hvad jeg i øjeblikket er 'stuck on', er, at hvordan jeg kan inkludere og bruge ImageMagick. Jeg skal bruge dette til at omforme pdf-filer side for side til billedfiler. Så pdf.pdf bliver til pdf01.png, pdf02.png osv.

Jeg har fundet ud af at ImageMagick kan gøre tricket og at jeg skal bruge exec() til at kalde en funktion i ImageMagick.

Spørgsmålne er så:

Hvordan installere jeg ImageMagick på min server, så det kan kaldes fra php? Jeg bruger Mamp på min mac (osx leopard) og har en linux-server til rådighed. Jeg vil gerne, at jeg kan køre det begge steder, så jeg kan teste på maccen.

Hvordan inkluderer jeg ImageMagick i php, så jeg kan kalde funktioner i ImageMagick?

Hvordan kalder jeg funktioner i ImageMagick?

På forhånd mange tak for alle svar, der kan bringe mig tættere på en løsning.

Magnus
Avatar billede repox Seniormester
08. februar 2011 - 10:12 #1
Jeg ved ikke hvordan man installerer imagemagick på en Mac - men jeg ved at du ikke skal distribuere imagemagick sammen med din løsning.

ImageMagick skal ikke 'inkluderes' i PHP - selvom nogle nok vil pege på http://php.net/imagick kræver det at serveren har den PECL extension installeret på serveren og det er der ingen grund til når imagemagick fungerer fint som command line tool.

Det eneste du skal bruge er stien til imagemagick executabels.
F.eks. /usr/bin/convert

Så gør du eksempelvis således:
$cmd = "/usr/bin/convert /sti/til/originalt_billede.jpg -resize 200x200 /sti/til/nyt_billede.jpg";
exec($cmd);

Og wupti - så har du brugt imagemagick til at eksempelvis generere et thumbnail på 200x200px.

Men nu til den lidt mere nedslående del - for at du kan bruge imagemagick til at læse PDF filer skal du også have installeret noget der hedder Ghostscript (findes her: http://pages.cs.wisc.edu/~ghost/ ) - og Ghostscript er noget frygtelig noget (IMO) at få til at arbejde sammen med imagemagick. Og der er heller ingen danske udbydere herhjemme på standard hoteller der tilbyder det som en del af deres standardhosting, hvorfor du nok skal regne med at skulle spendere i din egen server (eller i hvert tilfælde en VPS).

Og skal du have Ghostscript til at virke på en Mac skal du også selv compile koden.
Avatar billede M_Paaske Nybegynder
09. februar 2011 - 11:31 #2
Okay.

Det er en skam, da jeg allerede har et rent php-script til at håndtere billedbehandling og dermed kun skal bruge et script til at lave pdf-filer til billedfiler.

Kan du ellers komme på nogle muligheder for at gøre dette i php?

I øvrigt tak for dit svar.

Magnus
Avatar billede repox Seniormester
09. februar 2011 - 11:40 #3
Desværre ikke - det er den eneste mulighed jeg er bekendt med.
Avatar billede M_Paaske Nybegynder
11. februar 2011 - 04:12 #4
Hm. Nu du linker mig til den har jeg vist set siden før i research.

Hvordan får jeg det til at virke? Hvordan installerer jeg programmer via ftp? Er der nogen let,hvor jeg bare kan lægge filen ind og køre den?

Magnus
Avatar billede repox Seniormester
11. februar 2011 - 09:04 #5
Det kan man ikke - det skal installeres gennem shellen - sikkert med root brugeren; absolut ikke noget du kan gøre via FTP - og langt de fleste udbydere vil ikke installere Ghostscript.
Avatar billede M_Paaske Nybegynder
12. februar 2011 - 04:43 #6
Okay, det er en skam. Tak for hjælpen :)
Avatar billede repox Seniormester
12. februar 2011 - 12:29 #7
Det var så lidt :)
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