|
|
|
| У меня написал скрипт который при заливки картинки ее уменьшает, но вот беда качество жестоко портиться.
Кто может скинуть скипт, или как это делаеться что бы качество сохранялось. | |
|
|
|
|
|
|
|
для: Doorgen
(16.01.2009 в 21:09)
| | Может... Вот только не понятно, какие картинки Вы хотите уменьшить. Если Вы
>написал скрипт который при заливки картинки ее уменьшает
то показали бы... Может стоит чуть чуть подправить... | |
|
|
|
|
|
|
|
для: Николай2357
(16.01.2009 в 22:06)
| | Он уменьшает... Он ее каробит.
Вот скипт, он при заливки уменьшает картинку, но слишком сильно портит ее качество.
// загрузка фотографии на сервер ++++++++++++++++++
$img_tmp = $_FILES['img']['name'];
$size = getimagesize($_FILES['img']['tmp_name']);
$w = $size[0]; //это ширина
$h = $size[1]; //это высота
// проверяем выбрана ли фотография
if(!empty($_FILES['img']['tmp_name']))
{
$img_name = $_FILES['img']['name'];
$point = substr_count($img_name,"."); // проверяем количество точек
if($point>1)
{
echo "<font color=red>В названии фаила точка встречаеться $point раз.<br> Это запрещенно в целях безопасности.<br> Уберите все точки кроме последней ";
exit;
}
$exe=array("gif","jpg","png","jpeg","GIF","JPG","PNG","JPEG"); // разрешеные расширения
$ext = strtolower(substr($img_name, 1 + strrpos($img_name, ".")));
if (!in_array($ext, $exe))
{
echo "<font color=red>ФАЙЛ НЕ загружен.</B> Возможные причины:<BR>
- разрешена загрузка только файлов с такими расширениями: gif, jpg, jpeg, png<BR>
- Вы пытаетесь загрузить не графический файл;<BR>";
}
$ph=array(".php",".html",".xml","htm","pl"); // разрешеные расширения
$exn = strtolower(strrchr($img_name, "."));
if (in_array($exn, $ph))
{
echo "<font color=red>В названии файла есть .php или еще что то плохое. Запрещено.";
exit;
}
$img_name = $_FILES['img']['name'];
$ext = strtolower(substr($img_name, 1 + strrpos($img_name, ".")));
$image = date("Y-m-d-H-i-s",time()).".$ext";
$w = 400;
$h = 300;
$ratio = $w/$h;
$size_img = getimagesize($_FILES['img']['tmp_name']);
$src_ratio = $size_img[0]/$size_img[1];
if ($ratio<$src_ratio)
{
$h = $w/$src_ratio;
}
else
{
$w = $h*$src_ratio;
}
$dest_img = imagecreatetruecolor($w, $h);
if($ext == jpg or $ext == JPG or $ext == jpeg or $ext == JPEG)
{
$src_img = imagecreatefromjpeg($_FILES['img']['tmp_name']);
}
if($ext == gif or $ext == GIF)
{
$src_img = imagecreatefromgif($_FILES['img']['tmp_name']);
}
if($ext == png or $ext == PNG)
{
$src_img = imagecreatefrompng($_FILES['img']['tmp_name']);
}
imagecopyresampled($dest_img,
$src_img,
0,
0,
0,
0,
$w,
$h,
$size_img[0],
$size_img[1]);
imagejpeg($dest_img, "img/".$image);
|
| |
|
|
|
|
|
|
|
для: Doorgen
(17.01.2009 в 14:12)
| |
<?
imagejpeg($dest_img, "img/".$image, 100);
?>
|
3м параметром мы указываем качество результирующего изображения от 0 до 100 (100-максимум).
По умолчанию данный параметр равен 75
http://ru.php.net/manual/ru/function.imagejpeg.php | |
|
|
|
|
|
|
|
для: mihdan
(17.01.2009 в 14:14)
| | Спасибо вам большое. | |
|
|
|
|
|
|
|
для: Doorgen
(17.01.2009 в 14:12)
| | До боли знакомый скрипт!
Вот только с memory_limit до 32М пережимать большие картинки не будет, если ширина+высота фото более 2500 пикселов, памяти расходуется в районе 50М | |
|
|
|