Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Медленно работать самому с графикой! Свои функции по обработке - тормозят 
:(
    Опции темы
szz
Дата 10.5.2006, 00:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1289
Регистрация: 31.5.2005
Где: Moscow, Jerusalem

Репутация: нет
Всего: 33



Я вот тут пишу всякие функции для обратоки фотографий, например, вот, функция, которая делает фотку черно-белой:
Код

// $img - это стандартный ресурс картинки.
function xk_editor_bw($img){    
        $rgb = 0;
        $r=0;
        $g=0;
        $b=0;
        $m=0;
        for($y=0;$y<$img['height'];++$y){
            for($x=0;$x<$img['width'];++$x){
                    $rgb = ImageColorAt($img['im'], $x, $y);
                    $r = ($rgb >> 16) & 0xFF;
                    $g = ($rgb >> 8) & 0xFF;
                    $b = $rgb & 0xFF;            
                    $m = ($r+$g+$b)/3;
                    imagesetpixel($img['im'], $x, $y, ($m<<16)|($m<<8)|$m);
            }
        }        
        return $img;
}        


  и всякие подобные, типа негатива, сепии, блюра, автолевел и тд.
   Все работает, но на больших картинках сильно тормозит - не ставнить с точно таким же кодом, который я пишу на С++ -  в 20 или больше раз тормознее! 
     Понятно почему - рнр все-таки интерпретатор. Я бы написал свой extension для рнр, но хрен кто мне позволит из хостингов свои модули на С++ вставлять. 
   Нет ли чего-нибудь такого, что бы это компилировало? Напрмер я слышал о Zend Optimizer - может он поможет? 


--------------------
PM   Вверх
Mal Hack
Дата 10.5.2006, 18:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 1
Всего: 261



http://php.net/image уже не катит?
Там можно Альфа каналыизмпенить икол-во цветов в палитре.
Помимо GD можно и ImageMagic использовать вроде.  

Это сообщение отредактировал(а) Mal Hack - 10.5.2006, 18:23
PM ICQ   Вверх
MuToGeN
Дата 11.5.2006, 06:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лесник
****


Профиль
Группа: Модератор
Сообщений: 4379
Регистрация: 15.8.2002
Где: Москва

Репутация: 2
Всего: 32



GD в PHP - вообще тормозная вещь, с этим ничего не поделаешь. Кстати:
Цитата(szz @  10.5.2006,  00:15 Найти цитируемый пост)
$m = ($r+$g+$b)/3;
- не совсем верно. ЧБ = не R/3 + G/3 + B/3, оно высчитывается как-то похитрее. Как именно - точно не помню.  


--------------------
Three pings for the token rings,
Five pings for the UNIX machines,
Hundred pings for the broken links,
One special ping to check them all
Through Simple Network Management Protocol!
PM MAIL ICQ   Вверх
szz
Дата 11.5.2006, 06:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1289
Регистрация: 31.5.2005
Где: Moscow, Jerusalem

Репутация: нет
Всего: 33



так (R+G+B)/3  это не R/3 + G/3 + B/3!
   в моем варианте я нахожу среднее арифметическое (то есть общую светлоту), а у тебя - просто тот же цветной пиксел, но в три раза тускнее.
  Почему не совсем верно? Получается нормальное ч/б фото! Проверь.

    Может единственно коррекция по яркости к каждому цвету - ведь человек видит зеленый ярче чем он есть на самом деле, а красный - тусклее. Тогда вернее будет что-то в этом роде:
Код
$m = (min($r*1.2, 0xff) + $g*0.7 + $b) / 3;
 


--------------------
PM   Вверх
Drache
Дата 13.5.2006, 08:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 73
Регистрация: 31.3.2006

Репутация: нет
Всего: 3



Цитата

так (R+G+B)/3  это не R/3 + G/3 + B/3!

То ли это я еще никак не проснусь, то ли у вас там при работе с цветами арифметика другая, но, насколько я знаю, (R+G+B)/3  = R/3 + G/3 + B/3. 
PM MAIL   Вверх
MuToGeN
Дата 14.5.2006, 07:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лесник
****


Профиль
Группа: Модератор
Сообщений: 4379
Регистрация: 15.8.2002
Где: Москва

Репутация: 2
Всего: 32



Цитата(Drache @  13.5.2006,  08:58 Найти цитируемый пост)
у вас там при работе с цветами арифметика другая
Нет, у нас там при работе с цветами арифметика самая обыкновенная.
Цитата(szz @  11.5.2006,  06:48 Найти цитируемый пост)
в моем варианте я нахожу среднее арифметическое (то есть общую светлоту), а у тебя - просто тот же цветной пиксел, но в три раза тускнее.
Почему не совсем верно? Получается нормальное ч/б фото! Проверь.
Я не об этом. Соотношение R:G:B при преобразовании в ЧБ - не 1:1:1. То, что получается, выглядит похоже, но в точности не совпадает с исходным изображением. Стандартная схема преобразования в ЧБ - это R 30%, G 59% и B 11%. 


--------------------
Three pings for the token rings,
Five pings for the UNIX machines,
Hundred pings for the broken links,
One special ping to check them all
Through Simple Network Management Protocol!
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Графика | Следующая тема »


 




[ Время генерации скрипта: 0.0454 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.