Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to save an Imagick object (php)

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...

like image 916
Arch1tect Avatar asked Jun 16 '13 04:06

Arch1tect


People also ask

What is imagick PHP extension?

Imagick is a PHP extension to create and modify images using the ImageMagick library. There is also a version of Imagick available for HHVM. Although the two extensions are mostly compatible in their API, and they both call the ImageMagick library, the two extensions are completely separate code-bases.

How do I add imagick?

Install ImageMagick extension: Now install the ImageMagick PHP extension by using the following command. Install Imagick extension: After completion of ImageMagick package, the Imagick PHP extension will install. Restart Apache Server: Restart the apache server by using the following command.

Is imagick the same as ImageMagick?

ImageMagick is a PHP utility, a command line tool for image manipulation. For further details, see this. Imagick is an API or a class that performs the function same as ImageMagick. It provides numerous functions for image manipulation in PHP.


1 Answers

Replace

imagepng($im, 'new_image.png');

with

$im->writeImage('new_image.png');
like image 128
blake305 Avatar answered Oct 23 '22 07:10

blake305