[英]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. 我想这是一个愚蠢的问题,但这是我第一次处理php和图像处理。 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... 我得到的错误:imagepng():提供的参数不是有效的图像资源...
Replace 更换
imagepng($im, 'new_image.png');
with 同
$im->writeImage('new_image.png');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.