
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.216.100] |
![]() |
|
Сообщ.
#1
,
|
|
|
![]() ![]() Bitmap tmpimg; tmpimg=new Bitmap(100, 100); Color col = Color.FromArgb(220656); tmpimg.SetPixel(0, 0, col); int z = tmpimg.GetPixel(0, 0).ToArgb(); MessageBox.Show(z.ToString()); Выводит не "220656", а "-16753424" Может дело в том, что у КПК цветность - 65000 цветов? Как тогда мне цвет точки н абитмапе узнать??? Добавлено В догонку пробую цвета ARGB Вставляю | Выводит число 440100 | -16731104 (одинаковые) 440101 | -16731104 440102 | -16731104 440103 | -16731104 440104 | -16731096 (!!! изменилось) 0 | -16777216 10 | -16777208 30 | -16777192 60 | -16777160 100 | -16777120 Добавлено Делаю так: ![]() ![]() Color col = Color.FromArgb(111, 222, 123); tmpimg.SetPixel(0, 0, col); col = tmpimg.GetPixel(0, 0); MessageBox.Show(col.R+"-"+col.G+"-"+col.B); Эта скотина показывает вот что 104-220-120 |
Сообщ.
#2
,
|
|
|
У тебя шеснадцатибитный цвет в формате 565. Так, что вроде все правильно, попробуй создай изображение в формате 565 (tmpimg=new Bitmap(100, 100, PixelFormat.Format16bppRgb565); и на обычной машине начнет выдавать "не правильно".
Добавлено Цитата Slukad @ Эта скотина показывает вот что 104-220-120 Он не скотина ![]() ![]() Прикинь сам, что вместо 256 значений составляющая R может принять теперь только 32 значения, G = 64, B только 32 значения. P.S. Для КПК (возьмем твой пример) в диапазоне R (104 - 112) один и тот же цвет.То же самое и с зеленым только там от 220 - 224 и с синим 120 - 128. Он всегда берет нижнюю границу интервала в который попадает цвет. |
Сообщ.
#3
,
|
|
|
Ок. Bitmap этот у меня для Color Select идентификации, т.е. на экран не выводится. Т.е. мне совершенно почигу что там будет нарисовано. Но делать его как массив int[][] 240*294 не хочу - Graphics тогда его не заполнит. А на нем нужно именно рисовать.
Можно ли сделать Bitmap в обычном формате, чтобы r=255,b=255, g=255 было? Добавлено Все равно он скотина ) |
Сообщ.
#4
,
|
|
|
Цитата Slukad @ Можно ли сделать Bitmap в обычном формате, чтобы r=255,b=255, g=255 было? По логике так: Bitmap bitmap = new Bitmap(100, 100, PixelFormat.Format32bppArgb); |
Сообщ.
#5
,
|
|
|
Совет: если GetPixel используется часто, используй вместо него LockBits, если конечно в CF это есть.. Производительность вырастет в разы.
|
Сообщ.
#6
,
|
|
|
Красиво, но не помогло. Спасибо
|