PictureBox.point?
Hej!
Jag har försökt mig på ett skrivas en lite VB kod som jag trodde skulle ge mig möjligheten att läsa av pixlarna för en bild i en picturebox, men tyvärr verkar jag ha missförstått något. Laddar jag upp en bild som består av 4 svarta siffror på genomskinlig bakgrund får jag bara samma svar var jag än "pointar" (14933984)
Så här ser koden ut:
Dim ImgFileName As String
Dim Color As Long
Private Sub Command1_Click()
CommonDialog1.ShowOpen
CommonDialog1.CancelError = True
On Error GoTo ErrHandler
ImgFileName = CommonDialog1.FileName
Set Picture1.Picture = LoadPicture(ImgFileName)
ErrHandler:
CommonDialog1.CancelError = False
Cancel = -1
End Sub
Private Sub Command2_Click()
Dim i, j As Integer
i = 1
j = 1
Do While i <= Picture1.Height
Do While j <= Picture1.Width
Color = Picture1.Point(i, 2)
Text1.Text = Text1.Text & Color & vbCrLf
j = j + 1
Loop
i = i + 1
Loop
End Sub
Hjälp...?
Svara
Sv: PictureBox.point?
du har skrivit:
<code>
Color = Picture1.Point(i, 2)
</code>
borde det inte vara:
<code>
Color = Picture1.Point(i, j)
</code>
Svara
Sv:PictureBox.point?
Jo, jag upptäckte detta fel... Men får endå samma problem med att point inte verkar kunna se de svarta siffrorna...
Svara
Sv: PictureBox.point?
Förstår inte riktigt varför du inte gjort en for-sats, men ok.
Testa sätta scalemode till pixel och använd .ScaleWidth och .ScaleHeight istället.
Någon skillnad? Autoredraw? DrawMode?
PS Lägg till Exit Sub i Klickhändelsen på knappen.
//Mvh Me.Name
Svara
Sv: PictureBox.point?
Om inte nedanstående kod fungerar efter att du lagt dit nödvändiga objekt,
ja, då får du installera om VB.
Dim x As Long, y As Long
Dim lngColorRet As Long
For y = 0 To picTemp.ScaleHeight
For x = 0 To picTemp.ScaleWidth
lngColorRet = picTemp.Point(x, y)
lstColorItems.AddItem lngColorRet
Next x
Next y
MVH Me.Name
Svara