vb如何读取jpg文件某点的像素值
答案:2 悬赏:20 手机版
解决时间 2021-02-01 22:33
- 提问者网友:聂風
- 2021-01-31 22:53
如果随便给定JPG图片中的某个点的坐标,怎么在VB中读出该点的象素值?
最佳答案
- 五星知识达人网友:洒脱疯子
- 2021-01-31 23:09
如何获取图片某点的颜色值
'需控件:Picture1、Label1、Label2
Private Sub Form_Load()
Label1.Width = Me.Width
Label1.Caption = "在图片框上移动鼠标,可查看某个点的颜色值"
Picture1.ScaleMode = vbPixels '设置图片框的单位为:像素
'假设有图片:C:\My1.jpg
'图片类型为 bmp ico rle wmf emf GIF jpg 皆可
Picture1.Picture = LoadPicture("C:\My1.jpg")
End Sub
Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim Se As Long, R As Long, G As Long, B As Long
Se = Picture1.Point(X, Y) '获得像素点 x,y 的颜色值
Label2.BackColor = Se '设置 Label2 的背景色为 Se
Call GetRGB(Se, R, G, B) '将颜色值 Se 分解为红、绿、蓝
Label1.Caption = "当前像素点 " & X & "," & Y & " 的颜色(红绿蓝):" & R & "," & G & "," & B
End Sub
Private Sub GetRGB(Se As Long, R As Long, G As Long, B As Long)
Dim xx As String
xx = Hex(Se)
R = Len(xx)
If R < 6 Then xx = String(6 - R, "0") & xx
B = "&H" & Left(xx, 2)
G = "&H" & Mid(xx, 3, 2)
R = "&H" & Mid(xx, 5, 2)
End Sub
'需控件:Picture1、Label1、Label2
Private Sub Form_Load()
Label1.Width = Me.Width
Label1.Caption = "在图片框上移动鼠标,可查看某个点的颜色值"
Picture1.ScaleMode = vbPixels '设置图片框的单位为:像素
'假设有图片:C:\My1.jpg
'图片类型为 bmp ico rle wmf emf GIF jpg 皆可
Picture1.Picture = LoadPicture("C:\My1.jpg")
End Sub
Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim Se As Long, R As Long, G As Long, B As Long
Se = Picture1.Point(X, Y) '获得像素点 x,y 的颜色值
Label2.BackColor = Se '设置 Label2 的背景色为 Se
Call GetRGB(Se, R, G, B) '将颜色值 Se 分解为红、绿、蓝
Label1.Caption = "当前像素点 " & X & "," & Y & " 的颜色(红绿蓝):" & R & "," & G & "," & B
End Sub
Private Sub GetRGB(Se As Long, R As Long, G As Long, B As Long)
Dim xx As String
xx = Hex(Se)
R = Len(xx)
If R < 6 Then xx = String(6 - R, "0") & xx
B = "&H" & Left(xx, 2)
G = "&H" & Mid(xx, 3, 2)
R = "&H" & Mid(xx, 5, 2)
End Sub
全部回答
- 1楼网友:玩世
- 2021-01-31 23:15
你好!
vb好像只能处理bmp文件的像素值
打字不易,采纳哦!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯