Вопрос

Я изучаю getPixel32 () и классы Bitmap и Bitmap Data.В принципе, я хотел бы знать, как вывести простую трассировку ARGB из шестнадцатеричного значения.

в стороне, у меня сложилось впечатление, которое, как я полагаю / надеюсь, неверно, что шестнадцатеричные значения не могут воспроизводить столько цветов, сколько значения RGBA.Возможно, "веб-безопасность" сбила меня с толку из-за понимания полезности или желания использовать цвета, производимые с шестнадцатеричными значениями.

Это было полезно?

Решение

Для извлечения информации о цвете вам нужно работать с побитовыми операторами. Цвета хранятся как 0xAARRGGBB, поэтому вам нужно извлечь эти части. Небольшой фрагмент должен помочь:

родовое слово

В зависимости от того, как вы указываете значения RGBA, ответ может измениться. Если вы используете значения RGBA, где каждый канал определяется одним байтом, вы можете выразить ровно столько цветов, сколько в шестнадцатеричном значении. Ваше «шестнадцатеричное значение» - это целое число без знака, состоящее из 4 байтов. Во Flash также есть тип Number, который состоит из 64-битных, поэтому каждый канал будет выражаться 8-байтовым, а не одним. Вы можете представить, что у вас гораздо больше точности. Однако, вероятно, ваш экран настроен на «True Color (32-бит)» и не сможет отображать такое количество цветов. Вы выходите даже за рамки двойной точности (64 бита) и используете десятичную точность, которая в основном используется для финансовых расчетов. Каждое значение состоит из 128 бит, что составляет 16 байт для каждого канала. Это в 16 раз больше, чем при использовании шестнадцатеричного представления. Конечно, это гораздо больше точности, но ваш монитор не сможет с этим справиться.

Примечание. Размер вашего изображения также равен ширине высоте каналов * (байтов на канал). Поэтому, если вы используете один байт на канал, который является 8-битным, вы уже получаете достаточно цветов. Для большого изображения разница будет довольно большой, если вы перейдете с 8-битной на 32-битную на канал.

Изображение 1024x768 с точностью до 8 бит составляет 3072 КБ, тогда как то же 32-битное изображение занимает 12288 КБ в памяти. Это же изображение займет 24576 КБ при использовании типа Flash Number. Так что вам, вероятно, лучше остаться с 8-битной точностью, которой в большинстве случаев должно быть достаточно.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top