PHP загрузить и изменить размер изображения - PullRequest
6 голосов
/ 29 января 2010

Я работаю над сценарием, который загружает изображение с помощью PHP, и я хочу, чтобы оно изменило размер изображения до ширины 180, прежде чем сохранить его.
Я пытался использовать библиотеку WideImage и -> saveFileTO (...), но когда я включаю в страницу WideImage.php, страница становится пустой !!
Вот мой сценарий, если вы можете мне помочь, и скажите, как заставить его сохранить измененную версию

Ответы [ 4 ]

6 голосов
/ 29 января 2010

Вы можете использовать библиотеку PHP GD , чтобы изменить размер изображения при загрузке.

Следующий код должен дать вам представление о том, как реализовать изменение размера:

// Get the image info from the photo
$image_info = getimagesize($photo);
$width = $new_width = $image_info[0];
$height = $new_height = $image_info[1];
$type = $image_info[2];

// Load the image
switch ($type)
{
    case IMAGETYPE_JPEG:
        $image = imagecreatefromjpeg($photo);
        break;
    case IMAGETYPE_GIF:
        $image = imagecreatefromgif($photo);
        break;
    case IMAGETYPE_PNG:
        $image = imagecreatefrompng($photo);
        break;
    default:
        die('Error loading '.$photo.' - File type '.$type.' not supported');
}

// Create a new, resized image
$new_width = 180;
$new_height = $height / ($width / $new_width);
$new_image = imagecreatetruecolor($new_width, $new_height);
imagecopyresampled($new_image, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);

// Save the new image over the top of the original photo
switch ($type)
{
    case IMAGETYPE_JPEG:
        imagejpeg($new_image, $photo, 100);
        break;
    case IMAGETYPE_GIF:
        imagegif($new_image, $photo);         
        break;
    case IMAGETYPE_PNG:
        imagepng($new_image, $photo);
        break;
    default:
        die('Error saving image: '.$photo);
}
1 голос
/ 28 декабря 2013

Не используйте любую библиотеку Проверьте этот скрипт http://dr -wordpress.blogspot.com / 2013/12 / изображение изменения размера, используя-php.html Просто дал качество изображений из (0-99) этот код автоматически изменит размер изображений при загрузке

1 голос
/ 15 октября 2013

Вам даже не нужно использовать библиотеку WideImage.

Проверьте этот скрипт здесь: http://bgallz.org/502/php-upload-resize-image/

Вы начинаете с загрузки изображения и сохранения в файл временного изображения. Этот скрипт запускает форму с входными данными для максимальной высоты или максимальной ширины. Поэтому он сгенерирует новый файл изображения на основе новой ширины / высоты, а затем скопирует временное изображение на новое, созданное на сервере.

Вы видите это с помощью следующего кода:

// Create temporary image file.
$tmp = imagecreatetruecolor($newwidth,$newheight);
// Copy the image to one with the new width and height.
imagecopyresampled($tmp,$image,0,0,0,0,$newwidth,$newheight,$width,$height);
1 голос
/ 29 января 2010

Вы можете использовать класс, который я написал для такой задачи:

http://code.google.com/p/image2/source/browse/#svn/trunk/includes/classes

<?php

    try
    {
        $image = new Image2($path_to_image);
    }
    catch (NotAnImageException $e)
    {
        printf("FILE PROVIDED IS NOT AN IMAGE, FILE PATH: %s", $path_to_image);
    }

    $image -> resize(array("width" => 180)) -> saveToFile($new_path); // be sure to exclude the extension
    $new_file_location = $image -> getFileLocation(); // this will include the extension for future use
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...