Страница: 1 |
Вопрос: Разложение цвета по составляющим | Добавлено: 26.12.06 15:20 |
Автор вопроса: ![]() |
имеется картинка, требуется получить RGB каждого пикселя. Делаю так:
Dim BitMap As System.Drawing.Bitmap BitMap = System.Drawing.Bitmap.FromFile(filename) Dim str As String = "" Dim q As ColorValue For i = 0 To MapSize - 1 For j = 0 To MapSize - 1 q = ColorValue.FromColor(BitMap.GetPixel(i, j)) str = str + " " + q.Red.ToString + " " + q.Green.ToString + " " + q.Blue.ToString + " " Next Next IO.File.WriteAllText("c:\matrix.txt", str) ну и получается фигня какая-то, например RGB первого пикселя в текстовике это: 0,3960785 0,3960785 0,3960785 3 дробных числа. Что такое, как так?! Аналогично получается, если делать: q = ColorValue.FromArgb(BitMap.GetPixel(i, j).ToArgb) Что здесь неправильно? подскажите |
Ответы | Всего ответов: 10 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 219571279 Вопросов: 34 Ответов: 486 |
Профиль | Цитата | #1 | Добавлено: 26.12.06 15:58 |
Незнай-незнай... (у меня 2005, поэтому может отличаться)
Попробуй так: Dim q As Color
q = BitMap.GetPixel(100, 100) MsgBox(q.ToString) Там выдаются 4 значения ARGB. A - Это альфа какая-то... Можно строку обрезать и в файл вывести RGB. |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 58 Ответов: 4255 ![]() |
Профиль | Цитата | #2 | Добавлено: 26.12.06 16:01 |
А для чего тебе понадобился ColorValue???
BitMap.GetPixel(i, j) возвращает структуру Color, а она уже имеет в своем составе все составляющие цвета.. A,R,G,B вот их и юзай.. |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 219571279 Вопросов: 34 Ответов: 486 |
Профиль | Цитата | #3 | Добавлено: 26.12.06 17:29 |
2EROS
А че за Аlpha в ARGB? |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 300-70-6пятьЪ Вопросов: 62 Ответов: 545 |
Web-сайт: Профиль | Цитата | #4 | Добавлено: 26.12.06 17:30 |
благодарю, щас все замечательно. не учел такого расклада думал, что color возвращает только название системных цветов. |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 300-70-6пятьЪ Вопросов: 62 Ответов: 545 |
Web-сайт: Профиль | Цитата | #5 | Добавлено: 26.12.06 17:32 |
2avdey, alpha ето прозрачность. т.е. если альфа=0 то точка полностью не прозрачна, если 255 полностью прозрачна (или наоборот насчет 0 и 255 точно не знаю) |
Номер ответа: 6 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 219571279 Вопросов: 34 Ответов: 486 |
Профиль | Цитата | #6 | Добавлено: 26.12.06 17:37 |
Скорее всего наоборот, 255 - не прозрачна, а 0 - прозрачна... |
Номер ответа: 7 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 61 Ответов: 471 |
Web-сайт: Профиль | Цитата | #7 | Добавлено: 26.12.06 19:01 |
Dim R As Byte, G As Byte, B As Byte
Dim Color& Color = pic1.Point(x, y) R = Color And &HFF G = (Color \ 256) And &HFF B = (Color \ 65536) And &HFF Можно и вот так... |
Номер ответа: 8 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 58 Ответов: 4255 ![]() |
Профиль | Цитата | #8 | Добавлено: 26.12.06 19:49 |
0-прозрачный пиксел, 255 - не прозрачный |
Номер ответа: 9 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 304238252 Вопросов: 52 Ответов: 927 |
Профиль | Цитата | #9 | Добавлено: 26.12.06 21:03 |
2 Djon: для vb6 сгодица ![]() |
Номер ответа: 10 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 219571279 Вопросов: 34 Ответов: 486 |
Профиль | Цитата | #10 | Добавлено: 27.12.06 11:08 |
Надо вешать объявление: Код на VB6 не предлагать! |
Страница: 1 |
|