How to save an Imagick object (php)
15,696
Replace
imagepng($im, 'new_image.png');
with
$im->writeImage('new_image.png');
Comments
-
Arch1tect almost 2 years
I guess it's a silly question, but it's my first time to deal with php and image handling. In short I wonder how I can save the image instead of echoing it on a web page. The code is for distorting image which might not be in important in this question, you can just see the last few line when I save the image..
Codes:
/* Create new object */ $im = new Imagick('my_img.png'); $width = $im->getImageWidth(); $height = $im->getImageHeight(); /* Set the image format to png */ $im->setImageFormat('png'); /* Fill new visible areas with transparent */ $im->setImageVirtualPixelMethod(Imagick::VIRTUALPIXELMETHOD_TRANSPARENT); /* Activate matte */ $im->setImageMatte(true); /* Control points for the distortion */ $controlPoints = array( 0, 0, $height*0.7, $height*0.3, 0, $height, 0, $height, $width, 0, $height*0.7+$width, $height*0.3, $width, $height, $width, $height); /* Perform the distortion */ $im->distortImage(Imagick::DISTORTION_PERSPECTIVE, $controlPoints, true); /* Ouput the image */ //commented out because I want to save the image instead //header("Content-Type: image/png"); //echo $im; // right way to save image? imagepng($im, 'new_image.png'); // Free up memory imagedestroy($im);
The error I get: imagepng(): supplied argument is not a valid Image resource...