Jump to content
  • 0

Как через PHP уменьшить картинку?


The_doctor
 Share

Question

Есть страница с множеством картинок. Все они крупногабаритные, поэтому, даже уменьшая через свойства img, страница все равно грузится очень долго. Значит нужно менять сами картинки, делать уменьшенные копии. Возиться с ними в Photoshop долго. Вопрос: "Можно ли уменьшить картинку через php?". Каждый раз при загрузке страницы или однажды, запустив какой-нибудь add_pic.php. Главное, чтобы все происходило, грубо говоря, с нажатия одной кнопки. В интернете нашел пару примеров, они как надо не работают. :(

Link to comment
Share on other sites

6 answers to this question

Recommended Posts

  • 0

В Фотошопе тоже можно настроить по нажатию одной кнопки. В ACDSee есть возможность пакетной обработки фотографий, их уменьшение, в частности. Через PHP тоже можно, только в вашем случае, оно, мне кажется, не нужно.

Link to comment
Share on other sites

  • 0

вот интересная статья по которой сам разбирался

http://www.recens.ru/php/resize_and_crop.html

Единственное, в твоём случае наверное тебе нужно получать новый файл как объект, а не как новый файл.. Но думаю это не сложно.. И в комментариях есть небольшие дополнения

Edited by Gold Dragon
Link to comment
Share on other sites

  • 0

В Фотошопе тоже можно настроить по нажатию одной кнопки. В ACDSee есть возможность пакетной обработки фотографий, их уменьшение, в частности. Через PHP тоже можно, только в вашем случае, оно, мне кажется, не нужно.

Все я уже решил: будет через php. Может геморрой, но мне так хочется. Придумываю себе интересные задачи и решаю.

вот интересная статья по которой сам разбирался

http://www.recens.ru/php/resize_and_crop.html

Единственное, в твоём случае наверное тебе нужно получать новый файл как объект, а не как новый файл.. Но думаю это не сложно.. И в комментариях есть небольшие дополнения

Спасибо, хорошая статья и вообще сайт :) Написано просто и понятно. Разобрался, все сделал.

Link to comment
Share on other sites

  • 0

одно дело если их ресайзить на стороне сервера, другое у себя на компе.

если на локальном, то вот эту прогу советую: FastStone Photo Resizer пользуюсь давно умеет много чего.

Link to comment
Share on other sites

  • 0
<?
$maxdimension=1600;
echo "--> $maxdimension\n";

$dir=scandir(".");
$size=0;
foreach ($dir as $fname) if (preg_match("/\.(jpg|JPG)$/",$fname)) $size++;
$n=0;
foreach ($dir as $fname)
if (preg_match("/\.(jpg|JPG)$/",$fname))
{
$srcimg=imagecreatefromjpeg("./".$fname);
$x=$xorig=imagesx($srcimg);
$y=$yorig=imagesy($srcimg);
if ($x > $y)
{
$y=$maxdimension/$x*$y;
$x=$maxdimension;
}
else
{
$x=$maxdimension/$y*$x;
$y=$maxdimension;
}
if ($xorig > $x)
{
$destimg=imagecreatetruecolor($x,$y);
imagecopyresampled($destimg,$srcimg,0,0,0,0,$x,$y,$xorig,$yorig);
imagejpeg($destimg,"./".$fname,95);
echo '['.++$n."/{$size}]..".$fname."\n";
imagedestroy($srcimg);
imagedestroy($destimg);
}
else echo '['.++$n."/{$size}]..".$fname." - no changes\n";
}
echo "[$maxdimension]\n";
?>

Вот что я использую

Link to comment
Share on other sites

  • 0

ну я так понял картинки уже на сервере, только иногда их нужно показывать превьюшками, так что только PHP. Да и при загрузке на сервер тоже не помешает эта функция.. Хотя лучше проверять на соответствие и возвращать пользователю ошибку чтоб сам правил, хотя всё зависит от проекта

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