Неверное чтение уровней пикселей - VB
Формулировка задачи:
Создал форму, в ней бокс. В него гружу рисунок, в котором первую строку предварительно подготовил в Фотошопе. Заливал попиксельно только красным цветом, уровень зелёного и синего канала точно равны 0, то есть в них не содержится никакой информации.
Первому пикселю дал 1 в красном канале, второму - 2, третьему - 3 и т.д. по нарастающей. Всего 10 пикселей, соответственно в последнем уровень в красном канале равен 10.
Далее проверяю эти уровни попиксельно с помощью команды уровень(x) = Me.Picture1.Point(x, y), где y для первой строки равен 0, а х изменяется с 0 по 9. (Я верно разобрался, что картинка начинается не с 1-го пикселя, а с 0-ого?)
Вот что я получаю попиксельно:
№ в ФШ результат
0 - 1...........256
1 - 2.............3
2 - 3........131333
3 - 4.........65541
4 - 5...........261
5 - 6............6
6 - 7...........261
7 - 8............8
8 - 9.........65545
9 - 10..........11
Раньше с графикой не работал, поэтому вижу причину такого разнобоя в недостатке знаний у себя. Если кому не трудно, дайте ссылку, которая поможет разобраться.
Добавлю. scale mode стоит в пикселях.
Решение задачи: «Неверное чтение уровней пикселей»
textual
Листинг программы
Option Explicit Private Sub Command1_Click() GetRGB End Sub Private Sub GetRGB() Dim i As Long, j As Long, c As Long Dim R As Long, G As Long, B As Long, BG As Long For i = 0 To 9 c = P.Point(i, 0) R = c Mod 256 BG = c / 256 G = BG Mod 256 B = BG / 256 Print " R = " & R, "G = " & G, "B = " & B Next i End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д