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

Форум PHP

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

 

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

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

тема: правильное уменьшение картинки
 
 автор: flaers   (26.03.2010 в 16:01)   письмо автору
 
 

есть функция которая уменьшает аватары, работает хорошо, но если картинка прозрачная, то становится виден чёрный фон.
Как сделать фон белым?
функция imagefill() не помогла
<?
function resizeimg($filename$smallimage$w$h
{     
    
$filename $filename;    
    
$smallimage $smallimage;    
    
$ratio $w/$h;    
    
$size_img getimagesize($filename);
    if(
$size_img[0]>700 || $size_img[1]>1000) return false;
    if ((
$size_img[0]<$w) && ($size_img[1]<$h)) return true;   
    
$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 (
$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_img0000$w$h$size_img[0], $size_img[1]);    
     
    if (
$size_img[2]==2)  imagejpeg($dest_img$smallimage);                       
    else if (
$size_img[2]==1imagegif($dest_img$smallimage);                       
    else if (
$size_img[2]==3imagepng($dest_img$smallimage); 
    
    
imagedestroy($dest_img); 
    
imagedestroy($src_img); 
    return 
true;          
}
?>

  Ответить  
 
 автор: Рома   (26.03.2010 в 16:03)   письмо автору
 
   для: flaers   (26.03.2010 в 16:01)
 

http://softtime.ru/forum/read.php?id_forum=1&id_theme=71599&page=1

  Ответить  
 
 автор: flaers   (26.03.2010 в 16:11)   письмо автору
 
   для: Рома   (26.03.2010 в 16:03)
 

я так понял что для правильной работы вашей функции в той теме нужно учесть данные которые предоставил sim5?

  Ответить  
 
 автор: sim5   (26.03.2010 в 16:32)   письмо автору
 
   для: flaers   (26.03.2010 в 16:11)
 

О какой прозрачности и какого изображения идет речь?

  Ответить  
 
 автор: flaers   (26.03.2010 в 17:14)   письмо автору
 
   для: sim5   (26.03.2010 в 16:32)
 

в той теме на которую 'Рома' дал мне ссылку вы объясняли доплнительную информацию так вот без неё та функция будет работать нормально?

  Ответить  
 
 автор: sim5   (26.03.2010 в 17:25)   письмо автору
 
   для: flaers   (26.03.2010 в 17:14)
 

То есть вопросом на вопрос? Ну тогда, если вас интересует просто то, о чем говорится по ссылке:
imagesavealpha по умолчанию равно false.
imagealphablending по умолчанию равно true.
Думайте.

  Ответить  
 
 автор: flaers   (26.03.2010 в 22:01)   письмо автору
 
   для: Рома   (26.03.2010 в 16:03)
 

поставил вашу функцию, но теперь аватары сжимаются в плохом качестве (до 50x50)

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

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