2010-07-19 4 views
3

Предположим, я загрузил изображение. Я могу получить его каталог temp, а затем сохранить его с помощью move_uploaded_file(), но что, если я захочу также создать большой палец и сохранить оба в какой-то папке?Загрузить изображение, создать его большой палец, затем сохранить

Я знаю, как сохранить загруженное изображение, но я не знаю, как начать манипулировать изображением и сохранить его после создания большого пальца.

+1

Вы не нужно поставить «[PHP]» в заголовке, для чего нужны теги. – Wrikken

ответ

1

Я всегда использую Веро PHP Загрузить класс и всегда имел успех с ним. Этот класс PHP действительно прост в реализации и может манипулировать изображением любым способом. Он также может сохранять изображение в указанной папке.

Вы можете скачать его с here

Для просмотра демок и легкая документации Загрузить класс визита http://www.verot.net/php_class_upload_samples.htm?PHPSESSID=5375147e959625e56e0127f3458a6385

Ниже приведен простой пример, я получил от сайта

//How to use it? 
//Create a simple HTML file, with a form such as: 

<form enctype="multipart/form-data" method="post" action="upload.php"> 
    <input type="file" size="32" name="image_field" value=""> 
    <input type="submit" name="Submit" value="upload"> 
</form> 

//Create a file called upload.php: 

    $handle = new upload($_FILES['image_field']); 
    if ($handle->uploaded) { 
     $handle->file_new_name_body = 'image_resized'; 
     $handle->image_resize   = true; 
     $handle->image_x    = 100; 
     $handle->image_ratio_y  = true; 
     $handle->process('/home/user/files/'); 
     if ($handle->processed) { 
      echo 'image resized'; 
      $handle->clean(); 
     } else { 
      echo 'error : ' . $handle->error; 
     } 
    } 

//How to process local files? 
//Use the class as following, the rest being the same as above: 

    $handle = new upload('/home/user/myfile.jpg'); 
1

вам необходимо либо php gd, либо imagemagick. вот краткий пример изменения размера с помощью gd (из руководства):

<?php 
// File and new size 
$filename = 'test.jpg'; 
$percent = 0.5; 

// Content type 
header('Content-type: image/jpeg'); 

// Get new sizes 
list($width, $height) = getimagesize($filename); 
$newwidth = $width * $percent; 
$newheight = $height * $percent; 

// Load 
$thumb = imagecreatetruecolor($newwidth, $newheight); 
$source = imagecreatefromjpeg($filename); 

// Resize 
imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height); 

// Output 
imagejpeg($thumb, 'thumbs/thumb1.jpg'); 
?> 
+0

Как сохранить изображение в некоторой папке, а не отображать его? –

+0

вторым параметром функции imagejpeg является имя файла. Я обновил этот пример. также, проверьте страницу руководства: http://php.net/manual/en/function.imagejpeg.php –

+0

awesome, спасибо за это !! – Spork

3

Библиотека GD делает это очень простым.

Вам нужно будет рассчитать размеры исходного изображения, чтобы сохранить пропорции, это просто случай повторной выборки изображения в меньшем размере. Вот хороший учебник, который четко объясняет все: http://www.phptoys.com/e107_plugins/content/content.php?content.46

0

Используйте изображение magick. проверка предыдущих постов на переполнение стека Imagemagick thumbnail generation with php - using -crop PHP: Creating cropped thumbnails of images, problems Image processing class in PHP http://www.imagemagick.org/

define('THUMB_WIDTH', 60); 
define('THUMB_HEIGHT', 80); 
define('MAGICK_PATH','/usr/local/bin/'); 

function makeThumbnail($in, $out) { 
    $width = THUMB_WIDTH; 
    $height = THUMB_HEIGHT; 
    list($w,$h) = getimagesize($in); 

    $thumbRatio = $width/$height; 
    $inRatio = $w/$h; 
    $isLandscape = $inRatio > $thumbRatio; 

    $size = ($isLandscape ? '1000x'.$height : $width.'x1000'); 
    $xoff = ($isLandscape ? floor((($inRatio*$height)-$width)/2) : 0); 
    $command = MAGICK_PATH."convert $in -resize $size -crop {$width}x{$height}+{$xoff}+0 ". 
     "-colorspace RGB -strip -quality 90 $out"; 

    exec($command); 
}