PHP загрузить изображение, переименовать, миниатюру и сохранить оба - PullRequest
1 голос
/ 08 августа 2009

Я смотрю на функцию move_upload_files, но не думаю, что это то, что мне нужно.

Мне нужно загрузить изображение (максимальный размер 2 МБ png, jpg, только gif), затем переименовать его, затем создать его эскиз и сохранить оба в одном каталоге. Я решил сначала загрузить / переименовать основной файл, затем взять его и создать миниатюру. Но какие функции я должен смотреть, чтобы сделать это?

Ответы [ 5 ]

7 голосов
/ 07 декабря 2010
if(isset($_FILES['p1']) && $_FILES['p1']['tmp_name'] != ''){

    $sizes = array();
    $sizes['50'] = 50;
    $sizes['150'] = 150;
    $sizes['500'] = 500;

    $prefix = time();
    list(,,$type) = getimagesize($_FILES['p1']['tmp_name']);
    $type = image_type_to_extension($type);

    move_uploaded_file($_FILES['p1']['tmp_name'], 'uploads/'.$prefix.$type);

    $t = 'imagecreatefrom'.$type;
    $t = str_replace('.','',$t);
    $img = $t('uploads/'.$prefix.$type);

    foreach($sizes as $k=>$v){

        $width = imagesx( $img );
        $height = imagesy( $img );

        $new_width = $v;
        $new_height = floor( $height * ( $v / $width ) );

        $tmp_img = imagecreatetruecolor( $new_width, $new_height );
        imagealphablending( $tmp_img, false );
        imagesavealpha( $tmp_img, true );
        imagecopyresized( $tmp_img, $img, 0, 0, 0, 0, $new_width, $new_height, $width, $height );

        $c = 'image'.$type;
        $c = str_replace('.','',$c);
        $c( $tmp_img, 'uploads/'.$k.'_'.$prefix.$type );

    }//


}//

Я использую это, чтобы загрузить, переименовать и создать 3 разных превью, надеюсь, это кому-нибудь поможет.

5 голосов
/ 08 августа 2009

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

Есть миллионы учебников по этому вопросу, вот пара:

Или вы можете просто использовать готовое решение, например ::1010 *

1 голос
/ 08 августа 2009

PHPThumb - это то, что вам нужно ... Просто найдите в API-интерфейсе метод, позволяющий сохранить изображение. относительно загрузки изображения .. здесь у вас есть хороший учебник об этом

1 голос
/ 08 августа 2009

Посмотрите на phpThumb .

0 голосов
/ 14 марта 2013

@ Ян Уилкинсон php.net

лучшего качества можно получить с помощью imagecopyresampled ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...