PHP.SU

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

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

> Найдено сообщений: 8
TrAxeX864 Отправлено: 10 Ноября, 2011 - 19:34:46 • Тема: Как достать из картинки цвет нужного пикселя? • Форум: Графика в PHP

Ответов: 12
Просмотров: 6668
http://korzh[dot]net/2009-10-poisk-k[dot][dot][dot]ya-ix-cveta[dot]html - Нашел решение проблемы! Возможно кому-нибудь пригодится!

Самогонщик, спасибо за помощь!
TrAxeX864 Отправлено: 10 Ноября, 2011 - 19:01:23 • Тема: Как достать из картинки цвет нужного пикселя? • Форум: Графика в PHP

Ответов: 12
Просмотров: 6668
Самогонщик пишет:
яндекс "php битовые операции" первая же ссылка
http://www[dot]rinatous[dot]com/blog/node/1[dot]html

CODE (htmlphp):
скопировать код в буфер обмена
  1. $color = imagecolorat($this->img_obj, $i, $a)&0xf0f0f0


Надеюсь ты понимаешь, что если изображение содержит палитру, можно огребсти проблем.


В работе с байтами я не силен. Но сейчас постараюсь сделать как вы сказали Улыбка &0xf0f0f0 - эта операция нужна для того чтобы находить цвета похожие на #f0f0f0?
TrAxeX864 Отправлено: 10 Ноября, 2011 - 17:21:23 • Тема: Как достать из картинки цвет нужного пикселя? • Форум: Графика в PHP

Ответов: 12
Просмотров: 6668
Цитата:
Можно просто полученный код обработать битовой маской под операцией И. маска типа такой f0f0f0 уменьшит количество цветов до 16 в кубе. можно сделать маску более агрессивной.

А можете написать пример кода, как это можно сделать?
TrAxeX864 Отправлено: 10 Ноября, 2011 - 16:33:41 • Тема: Как достать из картинки цвет нужного пикселя? • Форум: Графика в PHP

Ответов: 12
Просмотров: 6668
PHP:
скопировать код в буфер обмена
  1. class ParsingColors
  2. {
  3.         //В этой переменной храниться ссылка на изображение
  4.         var $img_obj;
  5.        
  6.         //Всего цветов в картинке
  7.         var $total_colors;
  8.        
  9.         //Массив в котором содержаться все цвета и их количество в изображении
  10.         var $arr_colors;
  11.        
  12.         function __construct($img_path)
  13.         {
  14.                 //Создаем картинку
  15.                 $this->img_obj = imagecreatefromjpeg($img_path);
  16.  
  17.                 $this->img_height = imagesy($this->img_obj);
  18.                 $this->img_width = imagesx($this->img_obj);
  19.         }
  20.        
  21.         /****
  22.         Метод с которого начинается распаршивание картинки на цвета
  23.         ****/
  24.         function process($interval_check) //Интервал проверки пикселей на цвет
  25.         {
  26.                 for($i=0;$i<$this->img_height;$i++)
  27.                 {
  28.                         for($a=0;$a<$this->img_width;$a=$a+$interval_check)
  29.                         {
  30.                                 $color = dechex(imagecolorat($this->img_obj, $i, $a));
  31.                        
  32.                                 if(empty($array[$color])) { $array[$color] = 1; $this->total_colors++; }
  33.                                 else $array[$color]++;
  34.                         }
  35.                 }
  36.                
  37.                 $this->destroy_img();
  38.                
  39.                 $this->arr_colors = $array;
  40.                
  41.                 return $array;
  42.         }
  43.        
  44.         /****
  45.         Метод отбирает цвета, которые наиболее часто используются и определяет процент использования
  46.         ДЛЯ ВЫВОЗА ТРЕБУЕТСЯ ЗНАЧЕНИЕ ВОЗВРАЩАЕМОЕ ФУНКЦИЕЙ $this->process()
  47.         ****/
  48.         function Sort($limit)
  49.         {
  50.                 $array = $this->arr_colors;
  51.                
  52.                 unset($array[0]);
  53.                 arsort($array);
  54.                
  55.                 //Счетчик
  56.                 $c = 1;
  57.                 foreach($array as $key => $var)
  58.                 {
  59.                         $result['procent'][$key] = ($var / $this->total_colors) * 100;
  60.                        
  61.                         if($c == $limit)
  62.                                 break;
  63.                                
  64.                         $c++;
  65.                 }
  66.                
  67.                 return $result;
  68.         }
  69.        
  70.         /****
  71.         Метод для уничтожения картинки
  72.         ****/
  73.         function destroy_img()
  74.         {
  75.                 if($this->img_obj)
  76.                         imagedestroy($this->img_obj);
  77.         }
  78. }
  79.  
  80. $img = new ParsingColors('1.jpg');
  81. //Интервал проверки пиксела на цвет
  82. $img->process(5);
  83.  
  84. $result = $img->Sort(20);
  85.  
  86. foreach($result['procent'] as $key => $var)
  87. {
  88.         echo "<div style='min-width:50px; min-height:50px; margin:5px; background-color:#{$key}; float:left;'>{$key} {$var}</div>";
  89. }


Написал такой класс, но он выводит 20 самых популярных цветов! А нужно чтобы выводил как здесь http://wpapers.ru/wallpapers/avto/other-cars/5647/. Тоесть чтобы не выводил чисто одинаковые цвета.
TrAxeX864 Отправлено: 10 Ноября, 2011 - 13:00:27 • Тема: Как достать из картинки цвет нужного пикселя? • Форум: Графика в PHP

Ответов: 12
Просмотров: 6668
Самогонщик пишет:
imagecolorsforindex?

Справку читают только трусы.


А как перевести полученный в массив в строку формата #FF0000 например?
TrAxeX864 Отправлено: 10 Ноября, 2011 - 12:40:57 • Тема: Как достать из картинки цвет нужного пикселя? • Форум: Графика в PHP

Ответов: 12
Просмотров: 6668
Выдает 7-значную цифру? Как преобразовать в формат RGB? Кроме того, - эта функция сильно кушает память, с помощью нее не возможно определить процент пикселов определенного цвета в изображении.

Может это можно на JS сделать?
TrAxeX864 Отправлено: 10 Ноября, 2011 - 12:08:03 • Тема: Как достать из картинки цвет нужного пикселя? • Форум: Графика в PHP

Ответов: 12
Просмотров: 6668
Здравствуйте! Пробовал искать ответ на этот вопрос в поисковиках, но так ничего и не нашел.

Задача стоит в следующем:
Есть картинка (любая), нужно с помощью PHP скрипта выделить из нее основные цвета (по процентам). Я даже не могу найти как определить цвет отдельного пикселя в изображении.

Пожалуйста подскажите как можно реализовать такую задачу.

Вот пример реализации данной задачи:
http://wpapers[dot]ru/wallpapers/3d/Rendering/3004/
TrAxeX864 Отправлено: 27 Июля, 2010 - 19:01:09 • Тема: Вопрос по preg_match • Форум: Программирование на PHP

Ответов: 3
Просмотров: 249
Здрасти всем!

Есть такая строка:
PHP:
скопировать код в буфер обмена
  1. preg_match_all("#plcmnt_txt_container\">(.*)(<\/span>)#i", $lines, $urls);


Мне нужно вырезать все так, чтобы тэги plcmnt_txt_container\"> и <\/span> не пихались в массив. Помогите пожалуйста smile.gif Искал в гугле, ничего не нашел Подмигивание

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB