Im пытается изменить размер изображения, используя функцию imagemagick 'thumbnailImage'. Прямо сейчас, я ничего не делаю с изображением, просто повторяя новые измерения, чтобы увидеть, сработало ли это. И пока это не работает. Вот мой код. ПРИМЕЧАНИЕ: он отображает исходные размеры, а не новые.
$image = $_FILES["file"]["tmp_name"]; //Get original dimensions list($width, $height, $type, $attr) = getimagesize($image); echo "<BR>"; echo "ORIGINAL:"; echo "<BR>"; echo "Image width $width"; echo "<BR>"; echo "Image height " .$height; $max_height = 200; $max_width = 150; function thumbnail($image, $max_width, $max_height) { $img = new Imagick($image); $img->thumbnailImage($max_width, $max_height, TRUE); return $img; } thumbnail($image, $max_width, $max_height); //get new dimensions list($width, $height, $type, $attr) = getimagesize($img); echo "<BR>"; echo "NEW:"; echo "<BR>"; echo "Image width $width"; echo "<BR>"; echo "Image height " .$height;
Он даже не отображает второй набор эхо-сигналов. Теперь есть ошибки.
С вашими изменениями вы можете использовать следующее, чтобы получить ширину и высоту:
$img = thumbnail($image, $max_width, $max_height); $width = $img->getImageWidth(); $height = $img->getImageHeight(); var_dump($width, $height);
Метод getSize не документирован, и его возвращаемое значение не такое, которое можно было бы ожидать, поэтому будьте осторожны с этим!
Этот код будет работать
$image = $_FILES["file"]["tmp_name"];
получить файл из того места, где вы хотите и т. д. вы используете функцию с возвращаемым значением, но никогда не настраиваете var для ее возврата. вам также нужно сохранить файл, чтобы использовать getimagesize.
<? // $image = $_FILES["file"]["tmp_name"]; // get the file from where ever you want etc /* you are using a function with a return value but never set up a var for it to return to as well you need to save the file in order to use getimagesize */ $image = 'test.png';; //Get original dimensions list($width, $height, $type, $attr) = getimagesize($image); echo "<BR>"; echo "ORIGINAL:"; echo "<BR>"; echo "Image width $width"; echo "<BR>"; echo "Image height " .$height; $max_height = 200; $max_width = 150; function thumbnail($image, $max_width, $max_height) { $img = new Imagick($image); $img->thumbnailImage($max_width, $max_height, TRUE); return $img; } // orginal line thumbnail($image, $max_width, $max_height); $img=thumbnail($image, $max_width, $max_height); file_put_contents('testmeResize.png',$img ); //get new dimensions list($width, $height, $type, $attr) = getimagesize('testmeResize.png'); echo "<BR>"; echo "NEW:"; echo "<BR>"; echo "Image width $width"; echo "<BR>"; echo "Image height " .$height; // we set it to display the image for proof it works etc ?> <br> <img alt="" src="testmeResize.png">