ImageMagick en PHP
Call to undefined function ImageCreateFromJpeg()
Dit is het resize script:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?php
function resizeimage( $image, $output, $newWidth, $newHeight = 0, $quality = 100)
{
// Figure out the filetype
$typeArray = getimagesize($image);
if ($typeArray == FALSE) return;
$srcImage = "";
switch ($typeArray[2])
{
case 1: // gif
$srcImage = ImageCreateFromGif( $image );
break;
case 2: // jpg
$srcImage = ImageCreateFromJpeg( $image );
break;
case 3: // png
$srcImage = ImageCreateFromPng( $image );
break;
};
if ($srcImage == "") return; // failed
// Obtain the original image height and width
$srcWidth = ImageSX( $srcImage );
$srcHeight = ImageSY( $srcImage );
$destWidth = $newWidth;
$destHeight = $newHeight;
// preserve aspect ratio if $newHeight = 0
if ($newHeight == 0)
{
$destHeight = $srcHeight * ($newWidth / $srcWidth);
}
$geometry = $destWidth . "x" . $destHeight;
global $DOCUMENT_ROOT;
$convert_prog = "/usr/local/bin/convert";
@unlink($f_output);
$system = "$convert_prog -size $geometry $image -resize $geometry -quality $quality $output";
#print($system."<br>");
system($system);
}
?>
function resizeimage( $image, $output, $newWidth, $newHeight = 0, $quality = 100)
{
// Figure out the filetype
$typeArray = getimagesize($image);
if ($typeArray == FALSE) return;
$srcImage = "";
switch ($typeArray[2])
{
case 1: // gif
$srcImage = ImageCreateFromGif( $image );
break;
case 2: // jpg
$srcImage = ImageCreateFromJpeg( $image );
break;
case 3: // png
$srcImage = ImageCreateFromPng( $image );
break;
};
if ($srcImage == "") return; // failed
// Obtain the original image height and width
$srcWidth = ImageSX( $srcImage );
$srcHeight = ImageSY( $srcImage );
$destWidth = $newWidth;
$destHeight = $newHeight;
// preserve aspect ratio if $newHeight = 0
if ($newHeight == 0)
{
$destHeight = $srcHeight * ($newWidth / $srcWidth);
}
$geometry = $destWidth . "x" . $destHeight;
global $DOCUMENT_ROOT;
$convert_prog = "/usr/local/bin/convert";
@unlink($f_output);
$system = "$convert_prog -size $geometry $image -resize $geometry -quality $quality $output";
#print($system."<br>");
system($system);
}
?>
Iemand een sugestie?
Is er een manier om te kijken of ImageMagick goed geinstaleerd is?
phpinfo()?
Tim schreef op 05.09.2008 19:28:
Is er een manier om te kijken of ImageMagick goed geinstaleerd is?
Staan wel voorbeeldjes op php.net dacht ik, gewoon daar eentje van testen.
Ja die had ik idd gevonden, geen van de testjes doet iets, en ik had al gezocht in de phpinfo, (weet niet goed waar naar ik moet zoeken) maar in iedergeval geen IM of iets wat er op lijkt.
Ik heb nu dit gebruikt voor het aanmaken van een verkleind plaatje.:
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
header('Content-type: image/jpeg');
$image = new Imagick('image.jpg');
$image->resizeImage(500,333,Imagick::FILTER_LANCZOS,1);
$image->writeImage('image2.jpg');
?>
header('Content-type: image/jpeg');
$image = new Imagick('image.jpg');
$image->resizeImage(500,333,Imagick::FILTER_LANCZOS,1);
$image->writeImage('image2.jpg');
?>
Alleen nu blijven de proportions niet goed, is er een mogelijkheid te verkleinen met behoud van formaat? Ik kan dit nergens vinden.
Gr Tim