ImageMagick utan exec()

ImageMagick används för att hantera bilder med t.ex. PHP och ofta med funktionen exec(). Många webbhotell blockerar exec() av säkerhetsskäl men med lite tur finns ändå ImageMagick installerat.

Under arbete åt en kund som använder Webbkonsulterna upptäckte jag att de har ImageMagick som kan användas genom PHPs klass istället för med exec(). Ett exempel på vad man kan göra, en tumnageln av en PDF-fil:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/* 
 * Jag skapar inställningarna i variabler för att lättare kunna 
 * ändra och ev fixa till en funktion
 */
$input_file = '/path/to/inputfile.pdf[0]'; // Sökväg till filen, [0] anger pdffilens sidnummer
$output_file = '/path/to/outputfile.jpg'; // Sökväg till tumnageln, här har jag valt en .jpg
$thumbnail_width = 400; // Ställ in maxbredd
$thumbnail_height = 0; // Maxhöjd, 0 betyder att den ska gå efter bredd
$jpeg_quality = 80; // jpeg kvalitet
 
$im = new imagick($input_file);  // Skapa objektet med filen
$im->setImageColorspace(255); // Färginställning
$im->setCompression(Imagick::COMPRESSION_JPEG); // Använd jpg-kompression
$im->setCompressionQuality($jpeg_quality); // Kvalitet på jpeg
$im->setImageFormat('jpeg'); // Format på filen
$im->thumbnailImage($thumbnail_width, $thumbnail_height); // Skapa tumnagel med bredd/höjd
$im->writeImage($output_file); // Spara filen
$im->clear();
$im->destroy();

Kombinerat med lite filuppladdning, felhantering, jQuery reflect m.m. blir det här en mycket trevlig PDF-funktion.

Jag vet inte ens om detta hade varit möjligt att göra med det bibliotek som vanligen är inbyggt, GD2.

Lämna en kommentar

  • (will not be published)

XHTML: Du kan använda dessa taggar: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>