Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр 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_img, 0, 0, 0, 0, $w, $h, $size_img[0], $size_img[1]);    
     
    if (
$size_img[2]==2)  imagejpeg($dest_img, $smallimage);                       
    else if (
$size_img[2]==1) imagegif($dest_img, $smallimage);                       
    else if (
$size_img[2]==3) imagepng($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 Яндекс.Метрика Яндекс цитирования