Jump to content
  • 0

Изображения


Fenix
 Share

Question

У меня есть такой вопрос. Существует ли в пыхе функция, которая пропорционально уменьшает размер изображения. К примеру есть изображение. Ширина - 1000, высота 500 пикселов. Надо его уменьшить по ширинеи пропорционально высоте. Функции дается параметр - ширина уменьшеного изображения. Пусть будет 100 пикселов. Надо чтоб финкция уменьшило изображение по ширине до 100 и пропорционально по высоте. Т.е. до 50.

Link to comment
Share on other sites

15 answers to this question

Recommended Posts

  • 0

Нет, нужно писать своё или повзаимствовать. Вот используй под свои нужды:

$t=getimagesize ($imgfilename) or die('Unknown type of image');
$width=$t[0];$height=$t[1];
$maxwidth=200;
$maxheight=200;

if ($width>$maxwidth || $height>$maxheight)
{
if ($width>$height)
{
// если ширина больше высоты
$new_width=$maxwidth;
$new_height=$maxwidth/($width/$height);
}
if ($width<$height)
{
// если наоборот
$new_height=$maxheight;
$new_width=$maxheight*($width/$height);
}
if ($width==$height)
{
// если равны
$new_height=$maxheight;
$new_width=$maxwidth;
}


// тут код уменьшения картинки 200*200
// Лучше конечно использовать конструкцию switch..case.
if ($get_ext=='jpg') ($img=@imagecreatefromjpeg($imgfilename));
if ($get_ext=='gif') ($img=@imagecreatefromgif($imgfilename));
if ($get_ext=='png') ($img=@imagecreatefrompng($imgfilename));
if ($img)
{
$thumb=imagecreatetruecolor($new_width,$new_height);
imagecopyresampled ($thumb, $img, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
imagejpeg($thumb, $imgfilename, 100);
}
else
echo 'error';

}

upd: скрипт старенький, сейчас использую библиотеку работы с изображением.

Edited by ATI
Link to comment
Share on other sites

  • 0

Зря ты ему посоветовал imagemagic. Он судя по всему, не знает основ математики, раз не может такие примитивные расчеты провести. Пусть вникается в код, представленный выше.

Link to comment
Share on other sites

  • 0

Вообще, обычно сейчас на всех хостингах и в денвере в php стоит библиотека gd и про неё в и-нете уйма инфы. Почитайте про саму библиотеку ну и в частности про функцию imagecopyresized()

imagecopyresampled() требует gd 2.0.1 или новее, это уже пусть автор проверит :)

Link to comment
Share on other sites

  • 0
Вообще, обычно сейчас на всех хостингах и в денвере в php стоит библиотека gd и про неё в и-нете уйма инфы. Почитайте про саму библиотеку ну и в частности про функцию imagecopyresized()

imagecopyresampled() требует gd 2.0.1 или новее, это уже пусть автор проверит :)

Спасибо.

GD Version - bundled (2.0.34 compatible)

Подойдет?

Edited by Fenix
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy