天使
Lv 4
天使 asked in 電腦與網際網路程式設計 · 1 decade ago

picture(x).point?

這句Picture1.Point(i, j) Mod 256 的picture1.point事幹麻的?

我隨便找一張圖,下這個指令:? picture1.pint(0,0) 會出現16777215,出現的數字代表什麼意思?

還有,我看很多程式都會在後面加個mod 256 ,這個又是什麼東西?

Update:

以下程式碼,當car(i,j)=1,為黑色,=0則白色,WHY?

If (Picture1.Point(i, j) Mod 256) < 127 Then

car(i, j) = 1

Else

car(i, j) = 0

End If

Update 2:

那,point(x,y)分解RGB值,是如何分解的?

應該有個規則吧?我想要知道,請教一下!

2 Answers

Rating
  • puppy
    Lv 5
    1 decade ago
    Favorite Answer

    螢幕上圖片中的每一個點都是由三原色藍綠紅依不同比例所組合而成的,例如白色是藍+綠+紅,黃色則是綠+紅.也就是說從00000000到00FFFFFF表示黑色到白色(00BBGGRR).

    Picture1.Point(x,yj)這個指令是將圖片座標值(x,y)這個點的值傳回.下? picture1.pint(0,0) 這個指令會出現00FFFFFF(十進位16777215),代表這點是白色,

    現在如果有一個點的數值是0000FFFF(十進位16777215),要如何才能三色分解呢,很簡單如以下就能將BGR三個位元組分離出來.

    B=((color \ 65536 Mod 16777216))

    G=((color \ 256 Mod 256))

    R=color Mod 256

    以下是程式

    Private Sub Form_Load()

    Picture1.ScaleMode = vbPixels

    Picture1.Picture = LoadPicture("d:\test.bmp")

    Picture1.Top = 0

    Picture1.Left = 0

    End Sub

    Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

    Dim color As Long

    color = Picture1.Point(X, Y)

    Text1.Text = Hex(color)

    Label1.Caption = "B " & Hex((color \ 65536 Mod 16777216))

    Label2.Caption = "G " & Hex((color \ 256 Mod 256))

    Label3.Caption = "R " & Hex(color Mod 256)

    End Sub

  • 阿戊
    Lv 7
    1 decade ago

    point(x,y)是取該點的顏色值

    如果要分解RGB,你說的不大完整...

Still have questions? Get your answers by asking now.