Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Изменения размера изображения с прозрачностью

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
paveltkachev
Отправлено: 29 Августа, 2012 - 17:03:46
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Февр. 2012  


Помог: 0 раз(а)




Не могу понять в чём ошибка. Мне надо взять картинку с прозрачностью и на выходе выдать другую картинку и новыми размерами. Вот код, который не работает:

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <?php
  3.  
  4.  
  5.    $mask_path = 'C:\apache\vp.dev\www\big\1.png';
  6.  
  7.    $size = getimagesize($mask_path);
  8.  
  9.         $width = (int)ceil((25 / 79) * $size[0]);
  10.         $height = (int)ceil((25 / 79) * $size[1]);
  11.  
  12.        
  13.    $image = imagecreatefrompng($mask_path);
  14.  
  15.    $places = ImageCreate   ($width, $height);
  16.  
  17.    $bg   = imagecolorallocatealpha ($image, 253, 249, 235,0);
  18.  
  19.  
  20.    imagefilledrectangle($image, 0, 0, $width, $height, $bg);
  21.        
  22.    imageAlphaBlending($image, true);
  23.    imageSaveAlpha($image, true);
  24.    
  25.        
  26.    imageAlphaBlending($places, true);
  27.    imageSaveAlpha($places, true);
  28.    imagecolortransparent ($places, $bg);
  29.    
  30.    imagecopyresampled($image, $places, 0, 0, 0, 0, $size[0], $size[1], $width, $height);
  31.  
  32.    $filepath = 'C:\apache\vp.dev\www\small\1.png';
  33.  
  34.  
  35.    imagepng($places, $filepath);
  36.    imagedestroy($image);
  37.    imagedestroy($places);
  38.  
  39.  
  40. ?>
  41.  
  42.  
 
 Top
dimka888
Отправлено: 30 Августа, 2012 - 00:37:11
Post Id


Новичок


Покинул форум
Сообщений всего: 33
Дата рег-ции: Окт. 2010  


Помог: 0 раз(а)




PHP:
скопировать код в буфер обмена
  1.  
  2.    $mask_path = 'C:\apache\vp.dev\www\big\1.png';
  3.  
  4.    $size = getimagesize($mask_path);
  5.  
  6.         $width = (int)ceil((25 / 79) * $size[0]);
  7.         $height = (int)ceil((25 / 79) * $size[1]);
  8.  
  9.    $image = imagecreatefrompng($mask_path);
  10.  
  11.    $places = imagecreatetruecolor  ($width, $height);
  12.  
  13.    $bg   = imagecolorallocatealpha ($image, 253, 249, 235,0);
  14.  
  15.  
  16.    imagefilledrectangle($image, 0, 0, $width, $height, $bg);
  17.        
  18.         imagesavealpha( $places, true );
  19.         imagefill( $places, 1, 1, imagecolorallocatealpha( $places, 255, 255, 255, 127 ) );    
  20.         imagecolortransparent( $places, $black );
  21.  
  22.  
  23.    imagecopyresampled($image, $places, 0, 0, 0, 0, $size[0], $size[1], $width, $height);
  24.  
  25.    $filepath = 'C:\apache\vp.dev\www\small\1.png';
  26.  
  27.    imagepng($places, $filepath);
  28.    imagedestroy($image);
  29.    imagedestroy($places);
  30.  


попробуй так
 
 Top
paveltkachev
Отправлено: 30 Августа, 2012 - 09:37:52
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Февр. 2012  


Помог: 0 раз(а)




Проблема оказалась не в создании изображения, а в том что я в imagecopyresampled перепутал источник и приёмник. Но к сожалению качество картинки после масштабирования фиговое.

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2.  
  3. <?php
  4.  
  5.  
  6.   $mask_path = 'C:\apache\vp.dev\www\big\1.png';
  7.  
  8.   $size = getimagesize($mask_path);
  9.  
  10.        $width = (int)ceil((25 / 79) * $size[0]);
  11.        $height = (int)ceil((25 / 79) * $size[1]);
  12.  
  13.   $image = imagecreatefrompng($mask_path);
  14.  
  15.   $places = imagecreate  ($width, $height);
  16.  
  17.   $bg   = imagecolorallocatealpha ($image, 253, 249, 235,0);
  18.  
  19.  
  20.   imagefilledrectangle($places, 0, 0, $width, $height, $bg);
  21.      
  22.        imagesavealpha( $places, true );
  23.        imagefill( $places, 1, 1, imagecolorallocatealpha( $places, 255, 255, 255, 127 ) );    
  24.        imagecolortransparent( $places, imagecolorallocatealpha( $places, 255, 255, 255, 127 ) );
  25.  
  26.     imageAlphaBlending($image, true);
  27.    imageSaveAlpha($image, true);
  28.    
  29.        
  30.    imageAlphaBlending($places, true);
  31.    imageSaveAlpha($places, true);
  32.   imagecopyresampled($places, $image, 0, 0, 0, 0, $width, $height, $size[0], $size[1]);
  33.  
  34.   $filepath = 'C:\apache\vp.dev\www\small\1.png';
  35.  
  36.   imagepng($places, $filepath);
  37.   imagedestroy($image);
  38.   imagedestroy($places);
  39.  
  40.  
  41. ?>
  42.  
  43.  
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Графика в PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB