Изменение размера изображения при загрузке php

У меня есть php-скрипт для загрузки изображения, как показано ниже.

<?php $LibID = $_POST[name]; define ("MAX_SIZE","10000"); function getExtension($str) { $i = strrpos($str,"."); if (!$i) { return ""; } $l = strlen($str) - $i; $ext = substr($str,$i+1,$l); return $ext; } $errors=0; $image=$_FILES['image']['name']; if ($image) { $filename = stripslashes($_FILES['image']['name']); $extension = getExtension($filename); $extension = strtolower($extension); if (($extension != "jpg") && ($extension != "jpeg")) { echo '<h1>Unknown extension!</h1>'; $errors=1; exit(); } else { $size=filesize($_FILES['image']['tmp_name']); if ($size > MAX_SIZE*1024) { echo '<h1>You have exceeded the size limit!</h1>'; $errors=1; exit(); } $image_name=$LibID.'.'.$extension; $newname="uimages/".$image_name; $copied = copy($_FILES['image']['tmp_name'], $newname); if (!$copied) { echo '<h1>image upload unsuccessfull!</h1>'; $errors=1; exit(); }}} ?> 

который загружает файл изображения в папку «uimages» в корне. Я сделал изменения в html-файле для компактного отображения изображения, указав «max-height» и «max-width». Но я хочу изменить размер файла изображения при загрузке. Файл изображения может иметь максимальную ширину 100 пикселей и максимальную высоту 150 пикселей. Соотношения изображения должны быть ограничены. То есть изображение может быть меньше указанных выше размеров, но оно не должно превышать предел. Как я могу сделать это возможным?

Заранее спасибо 🙂

blasteralfred ..

Related of "Изменение размера изображения при загрузке php"

См. Этот ответ , мне нравится, что я использую imagemagick

Невозможно изменить размер изображения при загрузке; Он должен быть на сервере первым.

Для этого вы можете увидеть ответ Эрика, используя ImageMagick. Если вы используете библиотеку GD, вы можете использовать это .

Вы можете изменить размер изображения, используя собственную библиотеку GD для PHP. Вот ссылка на функцию, которую я написал для изменения размера изображения на любой произвольный размер. У него есть варианты для почтового ящика или обрезки, чтобы он соответствовал новому соотношению сторон, и довольно хорошее объяснение.

http://www.spotlesswebdesign.com/blog.php?id=1

вы можете использовать 2 функции для изменения размера изображений после загрузки

 <?php function thumbnail($inputFileName, $maxSize = 100) { $info = getimagesize($inputFileName); $type = isset($info['type']) ? $info['type'] : $info[2]; if (!(imagetypes() & $type)) { return false; } $width = isset($info['width']) ? $info['width'] : $info[0]; $height = isset($info['height']) ? $info['height'] : $info[1]; // Calculate aspect ratio $wRatio = $maxSize / $width; $hRatio = $maxSize / $height; // Using imagecreatefromstring will automatically detect the file type $sourceImage = imagecreatefromstring(file_get_contents($inputFileName)); // Calculate a proportional width and height no larger than the max size. if (($width <= $maxSize) && ($height <= $maxSize)) { // Input is smaller than thumbnail, do nothing return $sourceImage; } elseif (($wRatio * $height) < $maxSize) { // Image is horizontal $tHeight = ceil($wRatio * $height); $tWidth = $maxSize; } else { // Image is vertical $tWidth = ceil($hRatio * $width); $tHeight = $maxSize; } $thumb = imagecreatetruecolor($tWidth, $tHeight); if ($sourceImage === false) { // Could not load image return false; } // Copy resampled makes a smooth thumbnail imagecopyresampled($thumb, $sourceImage, 0, 0, 0, 0, $tWidth, $tHeight, $width, $height); imagedestroy($sourceImage); return $thumb; } function imageToFile($im, $fileName, $quality = 80) { if (!$im || file_exists($fileName)) { return false; } $ext = strtolower(substr($fileName, strrpos($fileName, '.'))); switch ($ext) { case '.gif': imagegif($im, $fileName); break; case '.jpg': case '.jpeg': imagejpeg($im, $fileName, $quality); break; case '.png': imagepng($im, $fileName); break; case '.bmp': imagewbmp($im, $fileName); break; default: return false; } return true; } ?> 

выполните вызов следующим образом: $ image = thumbnail ($ uploadedFile, 300); imageToFile ($ image, $ folder); // если вы хотите сохранить миниатюру