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

Форум PHP

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

 

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

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

тема: GDLib: плохое качество изображения на выходе
 
 автор: lElectroHardl   (21.04.2011 в 21:14)   письмо автору
 
 

Скрипт
<?
// $src - имяя оригинальной фотографии
// $dest - путь превьюшки
// $width - ширина превьюшки
// $height - высота превьюшки
function preview($src$dest$width$height$rgb 0xFFFFFF$quality 100)
{
    if (!
file_exists($src)) 
        return 
false
    
    
$size getimagesize($src); 
    
    if (
$size === false
        return 
false
    
    
// Определяем исходный формат по MIME-информации, предоставленной 
    // функцией getimagesize, и выбираем соответствующую формату 
    // imagecreatefrom-функцию. 
    
$format strtolower(substr($size['mime'], strpos($size['mime'], '/')+1));
    
$icfunc "imagecreatefrom".$format;

    if (!
function_exists($icfunc)) 
        return 
false
    
    
$x_ratio $width $size[0]; 
    
$y_ratio $height $size[1]; 
    
    
$ratio       min($x_ratio$y_ratio); 
    
$use_x_ratio = ($x_ratio == $ratio); 
    
    
$new_width   $use_x_ratio  $width  floor($size[0] * $ratio); 
    
$new_height  = !$use_x_ratio $height floor($size[1] * $ratio); 
    
$new_left    $use_x_ratio  floor(($width $new_width) / 2); 
    
$new_top     = !$use_x_ratio floor(($height $new_height) / 2); 
    
    
$isrc $icfunc($src);
    
$idest imagecreatetruecolor($width$height); 
    
    
imagefill($idest00$rgb); 
    
imagecopyresampled($idest$isrc$new_left$new_top00,  
    
$new_width$new_height$size[0], $size[1]); 

    
imagejpeg($idest$dest$quality);
    
    
imagedestroy($isrc); 
    
imagedestroy($idest); 
    
    return 
true;
?>

Дает на выходе изображение качеством чуть ниже оригинала, почему? (делаю из фотографии 1200х900 превью 1200х900)

  Ответить  
 
 автор: cheops   (21.04.2011 в 21:44)   письмо автору
 
   для: lElectroHardl   (21.04.2011 в 21:14)
 

У GDLib алгоритмы сглаживания хуже, чему у Photoshop.

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

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