Неверное чтение уровней пикселей - 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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.2 из 5
Похожие ответы