Изменить размер изображения – PHP

Я недавно создал функцию загрузки, но я не знаю, как изменить ширину и высоту до 75 пикселей … Я пробовал один код, который я нашел через Google, но я просто получил эту ошибку:

( ! ) Fatal error: Class 'Imagick' not found in C:\wamp\www\Legendary\new\usersettings.php on line 725 Call Stack # Time Memory Function Location 1 0.0042 880616 {main}( ) ..\usersettings.php:0 

Вот мой текущий код (включая код, который не работает):

 echo ' <table border="0" width="100%"> <tr><td style="font-size: 16px;">Change Image</td></tr> <form action="" method="post" enctype="multipart/form-data"> <tr><td>Upload Image:</td><td style="text-align: right;"><input type="file" name="upimage" id="upimage" /></td></tr> <tr><td></td><td style="text-align: right; font-size: 10px;"></td></tr> <tr><td></td><td style="text-align: right;"><input type="submit" name="submitnewimage" value="Upload" class="button" /></td></tr> </form> '; echo ' </table> '; if(isset($_POST['submitnewimage'])){ $name = $_FILES['upimage']['name']; $temp = $_FILES['upimage']['tmp_name']; $type = $_FILES['upimage']['type']; $size = $_FILES['upimage']['size']; if($name!=""){ include 'config.php'; $sql5 = mysql_query("SELECT * FROM images ORDER BY id DESC LIMIT 1"); while($row=mysql_fetch_array($sql5)) { if(!isset($show2)){ $id = $row['id']; $id = $id + 1; $show2 = "YES"; } } if(($type=="image/jpeg") || ($type=="image/jpg") || ($type=="image/gif") || ($type=="image/pjpeg") || ($type=="image/png")){ if($size<=100000){ $pos = strrpos($name, '.'); if($pos === false) $ext = ""; $ext = substr($name, $pos); $newFilename = $id.$ext; move_uploaded_file($temp, "images/teamicons/".$newFilename); $im = new Imagick('images/teamicons/'.$newFilename); $im->thumbnailImage(75,75); $im->writeImage('images/teamicons/'.$newFilename); mysql_query("INSERT INTO `images`(`id`, `name`, `size`, `type`) VALUES (NULL,'$newFilename',$size,'$type')"); $myusername = $_SESSION['myusername']; mysql_query("UPDATE `members` SET `img`= '$newFilename' WHERE `username`='$myusername'"); header("Location:" . $_SESSION['prev_page']); }else{echo "<tr><td colspan='2'><span style='color:#F00;'>The file, &quot;".$name."&quot;, is too large! Maximum allowed file size is 100kB.</span></td></tr>";} }else{echo "<tr><td colspan='2'><span style='color:#F00;'>&quot;".$type."&quot; is not a valid file type!</span></td></tr>";} }else{echo "<tr><td colspan='2'><span style='color:#F00;'>No file has been specified!</span></td></tr>";} } 

Есть ли способ изменить ширину и высоту изображений?

Solutions Collecting From Web of "Изменить размер изображения – PHP"

Я успешно использовал GD для этого недавно, в частности, используя функцию imagecopyresampled .


Чтобы немного рассказать об этом … Как только я загрузил изображение (к которому я не буду входить, потому что это еще одна проблема), я сделал что-то довольно простое:

 $original_info = getimagesize($filename); $original_w = $original_info[0]; $original_h = $original_info[1]; $original_img = imagecreatefromjpg($filename); $thumb_w = 100; $thumb_h = 100; $thumb_img = imagecreatetruecolor($thumb_w, $thumb_h); imagecopyresampled($thumb_img, $original_img, 0, 0, 0, 0, $thumb_w, $thumb_h, $original_w, $original_h); imagejpeg($thumb_img, $thumb_filename); imagedestroy($thumb_img); imagedestroy($original_img); 

Обратите внимание, что я не тестировал этот код. Это просто для того, чтобы дать вам базовое представление о моем методе.

Класс Imagick не найден, поскольку это расширение PHP, которое необходимо установить на ваш сервер.

Прочтите следующую документацию, чтобы найти инструкции по использованию / установке расширения. http://www.php.net/manual/en/book.imagick.php

Я использую код следующим образом:

 $t = imagecreatefromjpeg($old_path); $x = imagesx($t); $y = imagesy($t); $s = imagecreatetruecolor($new_width, $new_height); imagecopyresampled($s, $t, 0, 0, 0, 0, $new_width, $new_height, $x, $y); imagejpeg($s, $new_path); chmod($new_path, 0644); 

Вы также можете масштабировать клиентскую часть изображения, например, используя библиотеку plupload (можете изменять размер JPEG и PNG).