Comment faire pour enregistrer un objet Imagick (php)
Je suppose que c'est une question stupide, mais c'est mon premier temps à traiter avec php et de manipulation d'images. En bref, je me demande comment je peux enregistrer l'image au lieu de l'écho sur une page web. Le code est pour la distorsion de l'image qui ne serait pas important dans cette question, il vous suffit de regarder les derniers ligne lorsque j'enregistre l'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);
L'erreur que je reçois: imagepng(): supplied argument n'est pas une Image valide de ressources...
OriginalL'auteur Arch1tect | 2013-06-16
Vous devez vous connecter pour publier un commentaire.
Remplacer
avec
Veuillez cliquez sur la case à cocher à gauche de cette réponse, car il a résolu le problème. Et non, vous devez faire
$im->destroy()
il est préférable de l'utiliser clear() php.net/manual/en/imagick.clear.php au lieu de les détruire()
OriginalL'auteur blake305