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

Форум PHP

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

 

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

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

тема: Как ухудшить качество изображения
 
 автор: gurza   (15.12.2005 в 02:40)   письмо автору
 
 

Вот скрипт который уменьшает картинку
как можно ухудшить ее качество??

<? 
   
// Здесь можно и нужно добавить код, проверяющий 
   // содержимое переменной $_GET["file"] 
   // Вдруг вам хакер или просто любопытствующий туда 
   // что-нибудь не то передаст 
  
$filename $_GET["file"]; 
  
// Вызываем функцию масштабирования 
  
resizeimg($filename150,150); 

  
// Функция масштабирования 
  
function resizeimg($filename$w$h
  { 
    
// определим коэффициент сжатия изображения, которое будем генерить 
    
$ratio $w/$h
    
// получим размеры исходного изображения 
    
$size_img getimagesize($filename); 
    
    
// получим коэффициент сжатия исходного изображения 
    
$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);     
    
$white imagecolorallocate($dest_img255255255);          
      
    if (
$size_img[2]==2)  $src_img imagecreatefromjpeg($filename);                         
    else if (
$size_img[2]==1$src_img imagecreatefromgif($filename);                         
    else if (
$size_img[2]==3$src_img imagecreatefrompng($filename); 

    
// масштабируем изображение     функцией imagecopyresampled() 
    // $dest_img - уменьшенная копия 
    // $src_img - исходной изображение 
    // $w - ширина уменьшенной копии 
    // $h - высота уменьшенной копии           
    // $size_img[0] - ширина исходного изображения 
    // $size_img[1] - высота исходного изображения 
    
imagecopyresampled($dest_img$src_img0000$w$h$size_img[0], $size_img[1]);                   

    
// Выводим уменьшенную копию в поток вывода 
    
if ($size_img[2]==2)  header('Content-type: image/jpg');                         
    else if (
$size_img[2]==1header('Content-type: image/gif');                         
    else if (
$size_img[2]==3header('Content-type: image/png'); 
    
// Выводим уменьшенную копию в поток вывода 
    
if ($size_img[2]==2)  ImageJPEG($dest_img);                         
    else if (
$size_img[2]==1imagegif($dest_img);                         
    else if (
$size_img[2]==3imagepng($dest_img); 

    
// чистим память от созданных изображений 
    
imagedestroy($dest_img); 
    
imagedestroy($src_img); 
    return 
true;            
  }     
?> 

   
 
 автор: glsv (Дизайнер)   (15.12.2005 в 08:51)   письмо автору
 
   для: gurza   (15.12.2005 в 02:40)
 

>как можно ухудшить ее качество??
Что имеется ввиду под этими словами? И зачем ухудшать качество изображения?

   
 
 автор: Loki   (15.12.2005 в 09:21)   письмо автору
 
   для: gurza   (15.12.2005 в 02:40)
 

А он и так ее ухудшает... можете изменить размер изображения, например, на 1 пиксель и сравнить с оригиналом... все-таки php - не photoshop

   
 
 автор: gurza   (15.12.2005 в 15:31)   письмо автору
 
   для: Loki   (15.12.2005 в 09:21)
 

это надо чтоб картинка еще меньше весила

   
 
 автор: Loki   (15.12.2005 в 16:44)   письмо автору
 
   для: gurza   (15.12.2005 в 15:31)
 

так бы сразу и сказали


Это последний параметр функции ImageJPEG. Может иметь значения от 0 до 100. Чем он больше - тем лучше качество изображения.


<? 
ImageJPEG
($img"fotos/big/".$new_foto_id.".jpg"90); 
//... 
ImageJPEG($img"fotos/small/".$new_foto_id.".jpg"90); 
?> 


(с) Дизайнер

   
Rambler's Top100
вверх

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