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 :: как сделать фон прозрачный в GD2

 PHP.SU

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


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

> Без описания
imediasun
Отправлено: 03 Декабря, 2014 - 14:39:15
Post Id


Частый посетитель


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


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

[+][+][+][+][+]


Данная функция отлично делает ресайз изображения полученного из массива $_FILES
но внизу я пытаюсь заменить черный фон обрезанного изображения на прозрачный, и не получается, помогите пожалуйста кто сталкивался с этим? спасибо большое
PHP:
скопировать код в буфер обмена
  1.  
  2.         public function add_resort_photos(){
  3.         session_start();
  4.     if(!empty($_FILES)) {
  5.     // Файл передан через обычный массив $_FILES
  6.     echo 'Contents of $_FILES:<br/><pre>'.print_r($_FILES, true).'</pre>';
  7.     $file = $_FILES['my-pic'];
  8.         $file_name=$file['name'];
  9.         $ppos = strrpos($file_name, '.');
  10.         $file_name = substr($file_name, 0, $ppos).'('.md5(uniqid(rand(),1)).').'.substr($file_name, $ppos + 1);
  11.         $tmp_name=$file['tmp_name'];
  12.         $uploads_dir='./producers';  
  13.         $upload=$uploads_dir.'/'.$file_name;
  14.         if (move_uploaded_file($tmp_name, "$uploads_dir/$file_name")){
  15.         $image_info = GetImageSize($upload);
  16.                 $ratio_img=$image_info[0]/$image_info[1];
  17.                 if($image_info[0]>273 or $image_info[1]>74){
  18.                 if($image_info[0]>$image_info[1]){
  19.                 $img_width=273;
  20.                 $img_height=$img_width/$ratio_img;
  21.                 print('width '.$img_width.'х'.' height '.$img_height);
  22.                 }
  23.                 else{
  24.                 $img_height=74;
  25.                 $img_width=$img_height*$ratio_img;
  26.                 print('width '.$img_width.'х'.' height '.$img_height);
  27.                 }
  28.                 }
  29.                 else{
  30.                 $img_width=$image_info[0];
  31.                 $img_height=$image_info[1];
  32.                 }
  33.                 $ratio_index=$img_width/$img_height;
  34.                 $source_image=$upload;
  35.                 $target='./producers';
  36.                 $config_manip = array(
  37.         'image_library' => 'gd2',
  38.         'source_image' => $source_image,
  39.         'new_image' => $target,
  40.         'maintain_ratio' => TRUE,
  41.         'create_thumb' => FALSE,
  42.         'width' => $img_width,
  43.         'height' => $img_height
  44.     );
  45.    
  46.         $this->initial_resize($config_manip);
  47.         $source=substr($source_image, -4);
  48.         $source_start=substr($source_image, 0, -4);
  49.         $crop_image=$source_start.$source;
  50.         print('crop_image'.$crop_image);
  51.         $img_width=273;
  52.         $img_height=74;
  53.        
  54.         // clear //
  55.          $this->image_lib->clear();
  56.          $this->initial_crop($crop_image,$img_height,$img_width,false);
  57.  
  58. }
  59. $expansion=substr(strrchr($file_name, '.'), 1);
  60. switch($expansion){
  61. case 'png':
  62. $im = imagecreatefrompng($upload);
  63. $black = imagecolorallocate($im, 0, 0, 0);
  64. break;
  65. }
  66. }
  67. }
  68.  
 
 Top
DeepVarvar Супермодератор
Отправлено: 03 Декабря, 2014 - 14:53:29
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


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




 
 Top
imediasun
Отправлено: 03 Декабря, 2014 - 16:30:34
Post Id


Частый посетитель


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


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

[+][+][+][+][+]


А может мне кто-то объяснить почему только левую половину картинки очищает от черного этот код? пожалуйста
PHP:
скопировать код в буфер обмена
  1.  
  2. $im = imagecreatefrompng($upload);
  3.  
  4.  
  5. // Transparent Background
  6. imagealphablending($im, false);
  7. $transparency = imagecolorallocatealpha($im, 0, 0, 0, 127);
  8. imagefill($im, 0, 0, $transparency);
  9. imagesavealpha($im, true);
  10.  
  11. header('Content-Type: image/png');
  12. imagepng($im,$upload);
  13.  


Исходное изображение
http://exportgrain[dot]net/producers/logo1[dot]png


Итоговое изображение
http://exportgrain.net/producers/logo2.png

(Отредактировано автором: 03 Декабря, 2014 - 16:45:06)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB