Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Скрипт по уменьшению картинок
 
 автор: Doorgen   (16.01.2009 в 21:09)   письмо автору
 
 

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

Кто может скинуть скипт, или как это делаеться что бы качество сохранялось.

  Ответить  
 
 автор: Николай2357   (16.01.2009 в 22:06)   письмо автору
 
   для: Doorgen   (16.01.2009 в 21:09)
 

Может... Вот только не понятно, какие картинки Вы хотите уменьшить. Если Вы
>написал скрипт который при заливки картинки ее уменьшает
то показали бы... Может стоит чуть чуть подправить...

  Ответить  
 
 автор: Doorgen   (17.01.2009 в 14:12)   письмо автору
 
   для: Николай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);

  Ответить  
 
 автор: mihdan   (17.01.2009 в 14:14)   письмо автору
 
   для: Doorgen   (17.01.2009 в 14:12)
 

<?
imagejpeg
($dest_img"img/".$image100); 
?>


3м параметром мы указываем качество результирующего изображения от 0 до 100 (100-максимум).
По умолчанию данный параметр равен 75

http://ru.php.net/manual/ru/function.imagejpeg.php

  Ответить  
 
 автор: Doorgen   (17.01.2009 в 15:16)   письмо автору
 
   для: mihdan   (17.01.2009 в 14:14)
 

Спасибо вам большое.

  Ответить  
 
 автор: Gеоргий   (20.01.2009 в 13:07)   письмо автору
 
   для: Doorgen   (17.01.2009 в 14:12)
 

До боли знакомый скрипт!
Вот только с memory_limit до 32М пережимать большие картинки не будет, если ширина+высота фото более 2500 пикселов, памяти расходуется в районе 50М

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования