можно ли изменить ширину картинки посредством php?
можно ли изменить ширину картинки посредством php?
например есть картинка размером 1024 на *
мы обычно лезем в фотожоп кс и меняем его на 300 например и высоту какая получится,
а можноли это автоматизировать через php?
т.е. например при аплодиньи картинок на сервер чтобы они уменьшались?
мы обычно лезем в фотожоп кс и меняем его на 300 например и высоту какая получится,
а можноли это автоматизировать через php?
т.е. например при аплодиньи картинок на сервер чтобы они уменьшались?
Re: можно ли изменить ширину картинки посредством php?
Читаем про библиотеку GD, в основном, она везде поддерживается (я имею в виду хостинг с PHP)
В мануале функции этой библиотеки стоят в главе "Функции изображений"
В данном конкретном случае можно например использовать imagecopyresized(), эта функция не только меняет размеры, но ещё при этом следит и за качеством (которое может испортиться при изменении размеров картинки)
В мануале функции этой библиотеки стоят в главе "Функции изображений"
В данном конкретном случае можно например использовать imagecopyresized(), эта функция не только меняет размеры, но ещё при этом следит и за качеством (которое может испортиться при изменении размеров картинки)
Официальная страница
этой библиотеки, но в интернете есть туториалы, в том числе и конкретное использование вместе с PHP, например тут
Re: можно ли изменить ширину картинки посредством php?
а ктонибудь подсакажет откуда этот модуль скачать и как поставить под винд и линкс?
-
vadimiron
Re: можно ли изменить ширину картинки посредством php?
под win -
как в Linux - как ставить будем? (компилим, пакеты, apt... )
для все случаев phpinfo(); (на предмет - не стоит ли уже
)
"Как установить модуль GD для PHP"
как в Linux - как ставить будем? (компилим, пакеты, apt... )
для все случаев phpinfo(); (на предмет - не стоит ли уже
)-
mar
Re: можно ли изменить ширину картинки посредством php?
E-mail
Есть куча б/скриптов для этого.
Вот например (с _php5.ru)
Использование
А это тоже самое, но размер меняется в % (слегка переделал для своих нужд)
Соответственно использование
Есть куча б/скриптов для этого.
Вот например (с _php5.ru)
Код: Выделить всё
<?php
/***********************************************************************************
Функция img_resize(): генерация thumbnails
Параметры:
$src - имя исходного файла
$dest - имя генерируемого файла
$width, $height - ширина и высота генерируемого изображения, в пикселях
Необязательные параметры:
$rgb - цвет фона, по умолчанию - белый
$quality - качество генерируемого JPEG, по умолчанию - максимальное (100)
***********************************************************************************/
function img_resize($src, $dest, $width, $height, $rgb=0xFFFFFF, $quality=100)
{
if (!file_exists($src)) return false;
$size = getimagesize($src);
if ($size === false) return false;
// Определяем исходный формат по MIME-информации, предоставленной
// функцией getimagesize, и выбираем соответствующую формату
// imagecreatefrom-функцию.
$format = strtolower(substr($size['mime'], strpos($size['mime'], '/')+1));
$icfunc = "imagecreatefrom" . $format;
if (!function_exists($icfunc)) return false;
$x_ratio = $width / $size[0];
$y_ratio = $height / $size[1];
$ratio = min($x_ratio, $y_ratio);
$use_x_ratio = ($x_ratio == $ratio);
$new_width = $use_x_ratio ? $width : floor($size[0] * $ratio);
$new_height = !$use_x_ratio ? $height : floor($size[1] * $ratio);
$new_left = $use_x_ratio ? 0 : floor(($width - $new_width) / 2);
$new_top = !$use_x_ratio ? 0 : floor(($height - $new_height) / 2);
$isrc = $icfunc($src);
$idest = imagecreatetruecolor($width, $height);
imagefill($idest, 0, 0, $rgb);
imagecopyresampled($idest, $isrc, $new_left, $new_top, 0, 0,
$new_width, $new_height, $size[0], $size[1]);
imagejpeg($idest, $dest, $quality);
imagedestroy($isrc);
imagedestroy($idest);
return true;
}
?>Использование
Код: Выделить всё
<?php
require ('imgresize.php');
if (img_resize('original.jpg', 'small.jpg', 100, 60)) // 100 - новая ширина 60 - высота
echo 'Image resized OK';
else
echo 'Resize failed!';
?>А это тоже самое, но размер меняется в % (слегка переделал для своих нужд)
Код: Выделить всё
<?php
function img_resize($src, $dest, $new_size, $rgb=0xFFFFFF, $quality=100)
{
if (!file_exists($src)) return false;
$size = getimagesize($src);
if ($size === false) return false;
// Определяем исходный формат по MIME-информации, предоставленной
// функцией getimagesize, и выбираем соответствующую формату
// imagecreatefrom-функцию.
$format = strtolower(substr($size['mime'], strpos($size['mime'], '/')+1));
$icfunc = "imagecreatefrom" . $format;
if (!function_exists($icfunc)) return false;
if($new_size>100) $new_size=40;// эту строчку можно убрать, если надо увеличивать
$width= $size[0]* $new_size/100;
$height=$size[1]* $new_size/100;
$x_ratio = $width / $size[0];
$y_ratio = $height / $size[1];
$ratio = min($x_ratio, $y_ratio);
$use_x_ratio = ($x_ratio == $ratio);
$new_width = $use_x_ratio ? $width : floor($size[0] * $ratio);
$new_height = !$use_x_ratio ? $height : floor($size[1] * $ratio);
$new_left = $use_x_ratio ? 0 : floor(($width - $new_width) / 2);
$new_top = !$use_x_ratio ? 0 : floor(($height - $new_height) / 2);
$isrc = $icfunc($src);
$idest = imagecreatetruecolor($width, $height);
imagefill($idest, 0, 0, $rgb);
imagecopyresampled($idest, $isrc, $new_left, $new_top, 0, 0,
$new_width, $new_height, $size[0], $size[1]);
imagejpeg($idest, $dest, $quality);
imagedestroy($isrc);
imagedestroy($idest);
return true;
}
?>Соответственно использование
Код: Выделить всё
<?php
require ('imgresize.php');
if (img_resize('original.jpg', 'small.jpg', 60)) // здесь 60 - это проценты от оригинала
echo 'Image resized OK';
else
echo 'Resize failed!';
?>-
mar
Re: можно ли изменить ширину картинки посредством php?
E-mail
Есть куча б/скриптов для этого.
Вот например (с _php5.ru)
Использование
А это тоже самое, но размер меняется в % (слегка переделал для своих нужд)
Соответственно использование
Есть куча б/скриптов для этого.
Вот например (с _php5.ru)
Код: Выделить всё
<?php
/***********************************************************************************
Функция img_resize(): генерация thumbnails
Параметры:
$src - имя исходного файла
$dest - имя генерируемого файла
$width, $height - ширина и высота генерируемого изображения, в пикселях
Необязательные параметры:
$rgb - цвет фона, по умолчанию - белый
$quality - качество генерируемого JPEG, по умолчанию - максимальное (100)
***********************************************************************************/
function img_resize($src, $dest, $width, $height, $rgb=0xFFFFFF, $quality=100)
{
if (!file_exists($src)) return false;
$size = getimagesize($src);
if ($size === false) return false;
// Определяем исходный формат по MIME-информации, предоставленной
// функцией getimagesize, и выбираем соответствующую формату
// imagecreatefrom-функцию.
$format = strtolower(substr($size['mime'], strpos($size['mime'], '/')+1));
$icfunc = "imagecreatefrom" . $format;
if (!function_exists($icfunc)) return false;
$x_ratio = $width / $size[0];
$y_ratio = $height / $size[1];
$ratio = min($x_ratio, $y_ratio);
$use_x_ratio = ($x_ratio == $ratio);
$new_width = $use_x_ratio ? $width : floor($size[0] * $ratio);
$new_height = !$use_x_ratio ? $height : floor($size[1] * $ratio);
$new_left = $use_x_ratio ? 0 : floor(($width - $new_width) / 2);
$new_top = !$use_x_ratio ? 0 : floor(($height - $new_height) / 2);
$isrc = $icfunc($src);
$idest = imagecreatetruecolor($width, $height);
imagefill($idest, 0, 0, $rgb);
imagecopyresampled($idest, $isrc, $new_left, $new_top, 0, 0,
$new_width, $new_height, $size[0], $size[1]);
imagejpeg($idest, $dest, $quality);
imagedestroy($isrc);
imagedestroy($idest);
return true;
}
?>Использование
Код: Выделить всё
<?php
require ('imgresize.php');
if (img_resize('original.jpg', 'small.jpg', 100, 60)) // 100 - новая ширина 60 - высота
echo 'Image resized OK';
else
echo 'Resize failed!';
?>А это тоже самое, но размер меняется в % (слегка переделал для своих нужд)
Код: Выделить всё
<?php
function img_resize($src, $dest, $new_size, $rgb=0xFFFFFF, $quality=100)
{
if (!file_exists($src)) return false;
$size = getimagesize($src);
if ($size === false) return false;
// Определяем исходный формат по MIME-информации, предоставленной
// функцией getimagesize, и выбираем соответствующую формату
// imagecreatefrom-функцию.
$format = strtolower(substr($size['mime'], strpos($size['mime'], '/')+1));
$icfunc = "imagecreatefrom" . $format;
if (!function_exists($icfunc)) return false;
if($new_size>100) $new_size=40;// эту строчку можно убрать, если надо увеличивать
$width= $size[0]* $new_size/100;
$height=$size[1]* $new_size/100;
$x_ratio = $width / $size[0];
$y_ratio = $height / $size[1];
$ratio = min($x_ratio, $y_ratio);
$use_x_ratio = ($x_ratio == $ratio);
$new_width = $use_x_ratio ? $width : floor($size[0] * $ratio);
$new_height = !$use_x_ratio ? $height : floor($size[1] * $ratio);
$new_left = $use_x_ratio ? 0 : floor(($width - $new_width) / 2);
$new_top = !$use_x_ratio ? 0 : floor(($height - $new_height) / 2);
$isrc = $icfunc($src);
$idest = imagecreatetruecolor($width, $height);
imagefill($idest, 0, 0, $rgb);
imagecopyresampled($idest, $isrc, $new_left, $new_top, 0, 0,
$new_width, $new_height, $size[0], $size[1]);
imagejpeg($idest, $dest, $quality);
imagedestroy($isrc);
imagedestroy($idest);
return true;
}
?>Соответственно использование
Код: Выделить всё
<?php
require ('imgresize.php');
if (img_resize('original.jpg', 'small.jpg', 60)) // здесь 60 - это проценты от оригинала
echo 'Image resized OK';
else
echo 'Resize failed!';
?>Re: можно ли изменить ширину картинки посредством php?
Доки
тут
. Там же и скачать. В доках вариации: установить, обновить - выбираем по вкусу.-
Prisoner
Re: можно ли изменить ширину картинки посредством php?
кстати вопрос все есче в силе: с видио работает какнибудь?
Re: можно ли изменить ширину картинки посредством php?
кстати вопрос все есче в силе: с видио работает какнибудь?