Просмотр полной версии : низкое качество градиентной заливки
mr.daBUTCH
04.09.2006, 10:17
с помощью beginGradientFill залил прямоугольник, однако, качество такой заливки неудовлетворительно, несмотря на best-качество визуализации (_quality = "BEST";). На картинке показаны виды заливки в фотошоп и полученный результат на Flash. Результаты для наглядности увеличены на 200%. как-то можно это побороть или единственный вариант вставлять растровый фон ?
Флеш использует меньшее количество цветов для визуализации, побороть это средствами флеш нельзя.
Запустите swf и скажите где битмап, а градиент созданный с помощью ас? Разница не значительная.
iNils, речь идёт о переходах между близкими цветами
iNils, речь идёт о переходах между близкими цветамиНу и что, есть небольшие отличии в распределении цветов, но при чем тут качество?
2 iNils:
Флеш использует только т.н Websafe палитру, это меньше цветов, чем возможности экрана - отсюда и разница.
2 iNils:
Флеш использует только т.н Websafe палитру, это меньше цветов, чем возможности экрана - отсюда и разница.
Что, 216 цветов?
нет, от 0х000000 до 0хffffff =)
чтобы наглядно понять разницу - откройте палитру колор-пикера в фотошопе и введите значения в шеснадцатиричном виде с разницой в еденицу, посмотрите на сколько сдвинется кружек, который показывает цвет.
нет, от 0х000000 до 0хffffff =)
И это websafe?
хм, да, сейчас посмотрел, веб-сейф - это так называется 16 бит на канал. Это как-то по-другому... хм, слово забыл...
нет, от 0х000000 до 0хffffff =)Это 24 бита
2 iNils:
Вот я ж и говорю, что слово забыл... значит не веб-сейф, а как-то по-другому это называется, но не суть важно, главное, что меньше, чем физически показывает экран. Особенно хорошо это видно на оттенках близких к черному или белому, там (если смотреть в фотошопе на каларпикер) кружек, который на цвет показывает прыгает пикселов на 10-20 за еденицу изменения цвета (не знаю как еще это назвать).
Как меньше? Фотошоп тоже работает с 24 битами, если нет альфа канала, если он есть то добавляется еще 8 бит. Но на сам цвет все равно задается 24 бита.
2 iNils:
Монитор показывает 32 бита на канал, в фотошопе есть специальные прибамбасы которые используют возможности монитора для того, чтобы отобразить "плавные переходы", у флеша этого нету.
1. А где об этом можно прочесть?
2. Визуально я не вижу особой разницы между флешом и фотошопом. Да есть не соответствие, но как я уже говорил, на качестве это не отражается.
2 iNils:
Монитор показывает 32 бита на канал, в фотошопе есть специальные прибамбасы которые используют возможности монитора для того, чтобы отобразить "плавные переходы", у флеша этого нету.
32 бита = 24 бита цвет + 8 бит прозрачности.
32 бита = 24 бита цвет + 8 бит прозрачности.Я то это понимаю. Мне интересно, что wvxvw скажет.
2 _etc:
Мы говорим о полупрозрачных мониторах? Какие еще 8 битов на прозрачность для цветов монитора?..
2 _etc:
Мы говорим о полупрозрачных мониторах? Какие еще 8 битов на прозрачность для цветов монитора?..
Рисуешь ты в фотошопе 2 квадрата с цветом 0xFF0000 и 0x0000FF и прозрачностью 50% (то есть 0x80FF0000 и 0x800000FF). В месте их пересечения цвет будет 0xBF5500AA, что значит 75% прозрачности и сам цвет 0x5500AA. 8 бит альфа канала идут как коэффициенты для обработки сложения самих цветов, но сам монитор все равно дает в итоге только 24 бита.
2 iNils:
Хм, по-моему все-таки все 32 бита описывают именно цвет (т.е. большее количество оттенков), но я чего-то начал сомневаться....... надо литературу какую-нибудь по этому поводу найти.
Кроме всего прочего, просто замерял цвета в соседних пикселах на скринах в первом посте, шаг градиента в флеше даже в 24-битном представлении больше еденицы, так что наверное причина не в этом...
ЗЫ. Сейчас вот попробовал воспроизвести результат из первого поста... пришел в еще большее замешательство.
Вобщем, описываю опыт:
Залил в фотошопе и в флеше одинаковый по размеру прямоугольник (100х1000 пикселов) Градиент от 0xAFFFFF до 0xFFFFFF, поставил скриншоты рядом... При любом увеличении результаты практически одинаковые. Немного отличаются алгоритмы изменения цвета, но шаг одинаковый...
Цитаты с форума ixbt
Подход с программистской точки зрения объясняет все очень просто. Акселлератор использует 32бита не для вывода 32-битного цвета, а для операций над 32-битными числами, 8 из которых - синие, 8 - зеленые, 8 - красные и 8 на альфа канал. Ни один монитор не выводит 32 бита. Только 24.
Вот, поэтому и говориться, что про 32-битный цвет. Просто раньше (давненько правда) водились карточки, которые могли работать с 24 битами, но не могли с 32.
И еще по поводу фотошопа. Если открыть Color Picker, то размеры цветового поля 256 на 256. А 256 это и есть 8 бит. И когда ты увеличиваешь значение в # на единицу, скажем с 000000 на 000001, то пипетка сместиться ровно на 1 пиксель.
15123
15124
Вот это по поводу колорпикера, изменяем значение на еденицу, кружек сдвигается на 5 пикселов (в первом случае 114 пикселов от края, во втором - 119) (размер сдвига не всегда одинаковый, бывает и больше и меньше).
ЗЫ. Кса, как видно из показателей HSB, фотошоп мог обработать и меньший сдвиг цвета
Если меняем значение синего канала (1a>1b), то и смотреть изменения надо по синему каналу (и не квадрату, а по полоске. иначе окажется, что кружок совсем не двигается :D), то есть в B выбирать в RGB, а не в HSB (HSB не линейно зависит от RGB). Поэтому пример не корректен.
>>(и не квадрату, а по полоске. иначе окажется, что кружок совсем не двигается)
кто-то из нас чего-то не понимает %) кружек-то двигается =)
Встречный вопрос: физически я могу поставить кружек между двумя значениями (331b1b и 331b1a) при этом значение в поле # не изменится, но цвет изменится... так что за цвет я получу?
http://www.antula.ru/color-cube.htm
...составляет 16 777 216 цветов.
Данное количество - теоретически возможное количество цветов, которое можно отобразить на на экране монитора.
Там же есть описание HSB, в которой всего 1 795 000 цветов.
Прочитал, но это все равно не ответ на вопрос =)
Пусть в HSB будет еще на порядок меньше цветов - не важно, даже если этих цветов будет всего 5 но все они будут находится в диапазоне от 331b1b до 331b1a. Как с ними быть?
ЗЫ. но это уже очень далеко от темы топа. В конце концов причина низкого качества градиента была явно в чем-то другом...
1. Какой же ты не понятливый :)) В тех 7 пикселях (разницы между двумя цветам RGB) не находятся 7 разных цветов. Сделай скришот, увеличь его и пипеткой пройдись по соседним пикселя и увидешь, что они могут содержать такой же цвет как и основной пиксель.
2. Низкого качества нет, я же в самом начале дал пример.
Вот тебе простой пример. Два цвета в hsb, в квадрате (по H) разница между ними в 198 пикселей. А цвет как был в RGB 000000, так им и остался. Зато в HSB вместо 0,0%,0% стало 0,77%,0%.
Опять скажешь, что там больше цветов вмещается? :D
Вобщем, кажется осознал =)
Единственное, с белым или близкими цветами разница практически не заметна, а вот если так же сделать с черными, то при переводе в ЦМЫК получим разные цвета %)
И еще, по поводу градиентов, это не первый случай когда я вижу в флеше "корявый" градиент, раньше думал, что это связано с количеством цветов, теперь вот не знаю почему так... %)
CMYK больше для полиграфии, там цветовое представление другое.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.