PHP Сохраняет Изображение После того, Как изображение было скопировано


$image_p = imagecreatetruecolor($new_width, $new_height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);

Как я могу сохранить изображение с измененным размером в папку/? И как я могу определить тип изображения jpg/png/gif?

 11
Author: SagarPPanchal, 2012-02-26

6 answers

Чтобы сохранить изображение в файл, вы можете использовать любой из следующих способов: imagejpeg(), imagepng() или imagegif(), в зависимости от желаемого формата вывода.

Чтобы определить тип изображения, вы можете просто проверить расширение файла и основываться на этом. Однако иногда люди вручную изменяют расширение файла изображения, думая, что это на самом деле меняет тип изображения, поэтому всегда полезно проверить, вернул ли imagecreatefrom ресурс изображения, а не чем ложь.

Для быстрого способа возврата только расширения файла:

$ext = pathinfo($path_to_file, PATHINFO_EXTENSION);

Ввод вручную в pathinfo()

 12
Author: MichD, 2012-02-26 11:32:04

Вы можете определить изображение любого типа:

 // Save the image as 'simpletext.jpg'
 imagejpeg($im, 'path/to/your/image.jpg');
 // or another image
 imagepng($im, 'path/to/your/image.png');

Смотрите примеры здесь http://php.net/manual/en/function.imagecopyresampled.php

 4
Author: zoonman, 2012-02-26 11:29:37

Добавьте этот код

imagepng($iOut,'pic/mypic.png',3);

И этот код для получения формата ваших фотографий из внешнего источника

$link='http://example.com/example.png';
echo (substr ($link,strrpos ($link,".")+1));
 4
Author: Pooya Estakhri, 2012-02-26 11:30:24

После того, как вы применили imagecopyresampled(), $dst_image будет вашим идентификатором ресурса изображения.

Простое применение функции imagecopyresampled() не приводит к автоматическому сохранению ее в файловой системе.

Поэтому вам нужно будет сохранить его, используя одну из функций imagejpeg(), imagepng()

// Output
imagejpeg($dst_image, 'new-image.jpg', 100);
 3
Author: Valentin Despa, 2013-10-17 08:26:13
$filename = 'path/to/original/file.xxx'; // where xxx is file type (jpg, gif, or png)
$newfilename = 'path/to/resized/file.xxx'; // where xxx is file type (jpg, gif, or png)
$path_parts = pathinfo($filename);
if ($path_parts['extension'] == 'jpg') {
    $image_p = imagecreatetruecolor($new_width, $new_height);
    $image = imagecreatefromjpeg($filename);
    imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
    imagejpeg($image_p, $newfilename);
} elseif ($path_parts['extension'] == 'gif') {
    $image_p = imagecreatetruecolor($new_width, $new_height);
    $image = imagecreatefromgif($filename);
    imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
    imagegif($image_p, $newfilename);
} elseif ($path_parts['extension'] == 'png') {
    $image_p = imagecreatetruecolor($new_width, $new_height);
    $image = imagecreatefrompng($filename);
    imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
    imagepng($image_p, $newfilename);
} else {
        echo "Source file is not a supported image file type.";
}
 2
Author: , 2012-02-26 12:15:33

Чтобы сохранить изображение в формате jpg, см. функцию imagejpeg

Http://nz.php.net/manual/en/function.imagejpeg.php

Чтобы получить расширение изображения, используйте

$path_parts = pathinfo($filename);
echo $path_parts['extension'];
 0
Author: bumperbox, 2012-02-26 11:31:18