Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 10.07.2010, 22:32
petyakurochkin вне форума Посмотреть профиль Отправить личное сообщение для petyakurochkin Найти все сообщения от petyakurochkin
  № 1  
Ответить с цитированием
petyakurochkin
[+4 11.07.10]

Регистрация: Jun 2010
Сообщений: 9
По умолчанию Смена цвета изображения

Возможно, на этот или подобный вопрос уже отвечали, но как его сформулировать для поиска я не знаю.
Дано изображение с альфа-каналом. Для простоты, пусть оно будет не цветное. Для еще большей простоты пусть даже будет не градациями серого, а просто ч/б, но с байтовым альфаканалом. Но это для простоты понимания проблемы, но не более того.
Задача: поменять цвет изображения.
Что я тут понимаю под сменой цвета: надо поменять цвет в rgb-каналах и отмасштабировать альфу для каждого пикселя.
Пример: был пиксель 255, 255, 255, 128. Применяем к нему смену цвета на: 128,128,128,128. Итоговый цвет пикселя должен быть таковым: 128, 128, 128, 64.
Цвет в примере задан в формате RGBA.
Пробую сформулировать задачу еще раз:
Сначала нужно залить всё изображение прямоугольником, цвет которого задан, а заливка должна происходить умножением. Т.е. умножаем цвет исходного пикселя на цвет прямоугольника.
Надеюсь, понятно объяснил суть.

Добавлено через 14 минут
Черт, кажется, нашёл то, что мне нужно
Насколько я понял, решение следующее:
Когда нам нужно куда-то перекопировать BitmapData, изменив цвет или еще что-либо, мы можем сделать Draw, который и отрендерит один BitmapData в другой. В этой функции есть параметр ColorTransform, который и отвечает за то, что я хочу.
Интересно, как быстро оно всё работает?..

Добавлено через 34 минуты
И еще спрошу: стандартных функций в ActionScipt по переводу цвета из RGBA формата в его uint нету, что ли? В принципе-то, дело не сложное, просто будет странно узнать, что такую функцию не впихнули в станд. поставку.

Старый 11.07.2010, 02:09
zurkis вне форума Посмотреть профиль Отправить личное сообщение для zurkis Найти все сообщения от zurkis
  № 2  
Ответить с цитированием
zurkis
 
Аватар для zurkis

Регистрация: Nov 2008
Адрес: Атланта
Сообщений: 1,271
http://www.gskinner.com/blog/archive...atrix_upd.html
__________________
Пока я жив, Вы горем обеспечены

Старый 11.07.2010, 10:44
petyakurochkin вне форума Посмотреть профиль Отправить личное сообщение для petyakurochkin Найти все сообщения от petyakurochkin
  № 3  
Ответить с цитированием
petyakurochkin
[+4 11.07.10]

Регистрация: Jun 2010
Сообщений: 9
Цитата:
ColorMatrix provides a way to adjust Brightness, Contrast, Saturation and Hue based on a range of numeric values as well as multiply matrices.
Не то.

Старый 11.07.2010, 15:48
i.o. вне форума Посмотреть профиль Отправить личное сообщение для i.o. Найти все сообщения от i.o.
  № 4  
Ответить с цитированием
i.o.
 
Аватар для i.o.

Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
как это не то?

Старый 11.07.2010, 15:51
zurkis вне форума Посмотреть профиль Отправить личное сообщение для zurkis Найти все сообщения от zurkis
  № 5  
Ответить с цитированием
zurkis
 
Аватар для zurkis

Регистрация: Nov 2008
Адрес: Атланта
Сообщений: 1,271
Цитата:
Сообщение от petyakurochkin Посмотреть сообщение
Не то.
это как раз то что ты описал что тебе нужно, а ColorMatrix как раз для таких вещей, ты главное правильно его используй, но перед использованием разберись как он работет
__________________
Пока я жив, Вы горем обеспечены

Старый 11.07.2010, 16:00
i.o. вне форума Посмотреть профиль Отправить личное сообщение для i.o. Найти все сообщения от i.o.
  № 6  
Ответить с цитированием
i.o.
 
Аватар для i.o.

Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
сорри, я в начале подумал, что речь идет про ColorMatrixFilter - вот это то, что нужно автору. А ColorMatrix просто использует возможности ColorMatrixFilter

Старый 11.07.2010, 16:50
petyakurochkin вне форума Посмотреть профиль Отправить личное сообщение для petyakurochkin Найти все сообщения от petyakurochkin
  № 7  
Ответить с цитированием
petyakurochkin
[+4 11.07.10]

Регистрация: Jun 2010
Сообщений: 9
Использовал ColorTransform в системе частиц. Почему вы рекомендуете именно ColorMatrixFilter?

Добавлено через 6 минут
Цитата:
Класс ColorMatrixFilter позволяет применить матричное преобразование 4 x 5 в цветовой схеме RGBA с альфа-каналом к каждому пикселу входного изображения для получения результата с новым набором значений в схеме RGBA и альфа-канала. Благодаря этому можно изменять насыщенность, оттенок и яркость альфа-канала и применять другие эффекты. Фильтр можно применять к любому визуализируемому объекту (т.е. объекту, наследуемому от класса DisplayObject), например MovieClip, SimpleButton, TextField, Video, а также объектам BitmapData.
Мои глаза. Лень пробовать, но интересно, насколько это быстро?

Старый 12.07.2010, 00:08
i.o. вне форума Посмотреть профиль Отправить личное сообщение для i.o. Найти все сообщения от i.o.
  № 8  
Ответить с цитированием
i.o.
 
Аватар для i.o.

Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
мне тоже лень сравнивать. В документации про ColorMatrixFilter помнится писалось про процессорную оптимизацию типа SSE2 или еще чего. Вот и есть такая мысль, что ColorMatrixFilter пошустрее будет.

Создать новую тему Ответ Часовой пояс GMT +4, время: 03:15.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 03:15.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.