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]   

> Без описания
cptcont
Отправлено: 04 Апреля, 2012 - 20:50:52
Post Id


Новичок


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


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




Имею год функции
PHP:
скопировать код в буфер обмена
  1.  
  2. function crop($file_input, $file_output, $crop = 'square',$percent = false) {
  3.         list($w_i, $h_i, $type) = getimagesize($file_input);
  4.         if (!$w_i || !$h_i) {
  5.                 echo 'Невозможно получить длину и ширину изображения';
  6.                 return;
  7.     }
  8.     $types = array('','gif','jpeg','png');
  9.     $ext = $types[$type];
  10.     if ($ext) {
  11.         $func = 'imagecreatefrom'.$ext;
  12.         $img = $func($file_input);
  13.     } else {
  14.         echo 'Некорректный формат файла';
  15.                 return;
  16.     }
  17.         if ($crop == 'square') {
  18.                
  19.                
  20.                
  21.                 $x_o = $y_o = 0;
  22.                 if ($w_i > $h_i) {     
  23.                         $w_o = $w_i;
  24.                         $h_o = $w_i;
  25.                         $x_o = 0;
  26.                         $uu = ($w_i - $h_i) / 2;
  27.                         $y_o = $uu-($w_i - $h_i);      
  28.                 } else {
  29.                         $w_o = $h_i;
  30.                         $h_o = $h_i;
  31.                         $y_o = 0;
  32.                         $uu = ($h_i - $w_i) / 2;
  33.                         $x_o = $uu-($h_i - $w_i);
  34.                        
  35.                 }
  36.                
  37.                
  38.                        
  39.                
  40.         } else {
  41.                 list($x_o, $y_o, $w_o, $h_o) = $crop;
  42.                 if ($percent) {
  43.                         $w_o *= $w_i / 100;
  44.                         $h_o *= $h_i / 100;
  45.                         $x_o *= $w_i / 100;
  46.                         $y_o *= $h_i / 100;
  47.                 }
  48.         if ($w_o < 0) $w_o += $w_i;
  49.             $w_o -= $x_o;
  50.                 if ($h_o < 0) $h_o += $h_i;
  51.                 $h_o -= $y_o;
  52.         }
  53.        
  54.         $img_o = imagecreatetruecolor($w_o, $h_o);
  55.         imagefill($img_o, 0, 0, 0x000080);
  56.        
  57.  
  58.  
  59.        
  60.         imagecopy($img_o, $img, 0, 0, $x_o, $y_o, $w_o, $h_o);
  61.         if ($type == 2) {
  62.                 return imagejpeg($img_o,$file_output,100);
  63.         } else {
  64.                 $func = 'image'.$ext;
  65.                 return $func($img_o,$file_output);
  66.         }
  67.  
  68.  
  69. }
  70.  


не хочет выводить вместо черных полей (если изображение не по формату) синий фон... вы водит упорно черный... хотя:

imagefill($img_o, 0, 0, 0x000080);

указал синий
 
 Top
Мелкий Супермодератор
Отправлено: 04 Апреля, 2012 - 21:33:11
Post Id



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


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




Цвет для imagefill задаётся несколько иначе. В официальном мануале описано лучше: http://ru.php.net/manual/ru/func...on.imagefill.php


-----
PostgreSQL DBA
 
 Top
cptcont
Отправлено: 04 Апреля, 2012 - 23:33:32
Post Id


Новичок


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


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




Мелкий пишет:
Цвет для imagefill задаётся несколько иначе. В официальном мануале описано лучше: http://ru.php.net/manual/ru/function.imagefill.php

Я и так задавал....

PHP:
скопировать код в буфер обмена
  1.  
  2. imagesavealpha($img_o, true);
  3. $trans_colour = imagecolorallocatealpha($img_o, 0, 0, 0, 127);
  4. imagefill($img_o, 0, 0, $trans_colour);
  5.  



РАЗДНИЦЫ НЕТ!!! Где 0 0 0 Цвет.. этот вариант черный должен фон давать...

(Отредактировано автором: 04 Апреля, 2012 - 23:34:42)

 
 Top
Мелкий Супермодератор
Отправлено: 05 Апреля, 2012 - 09:32:27
Post Id



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


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




Альфа 127 - полная прозрачность, вне зависимости от цвета.
+ не забывайте, что альфу далеко не все умеют.


-----
PostgreSQL DBA
 
 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