COLORREF clr = ::GetPixel(hDC, pointx, pointy); //获取当前鼠标点像素值
m_red = GetRValue(clr);
m_bluee = GetBValue(clr);
m_green = GetBValue(clr);
Picture控件可以用GetPixel来得到RGB颜色值。返回值是一个Long类型的整数。它的值为R 65536 + G 256 + B。所以要得到其各自的颜色值,需要将返回值除65536得到R,返回值与65536取余除256得到G,返回值与65536256取余得到B。
右击属性,选择摘要,点击详细属性,里面有位深度一项。RGB图位深度是24,灰度和索引图位深度是8,灰度是白灰黑表示的图,索引图有可能是彩色的,也是8位深。
属性是人类对于一个对象的抽象方面的刻画。一个具体事物,有许许多多的性质与关系,把一个事物的性质与关系,都叫作事物的属性。事物与属性是不可分的,事物都是有属性的事物,属性也都是事物的属性。
public class TestActionAction extends Action {
public void doSome(){
try {
//
//ImageIOread(">
第一种方法:使用”美图看看“打开一张png,如图。然后,点击”编辑“再点击下拉三角。选择”批量转换格式“,将格式转换为JPG格式即可。
第二种方法:打开电脑自带”画图工具“,然后点击”另存为“,存储为JPG格式即可。
第三种方法:使用Potoshop打开一张,如图。然后,点击”文件“-”存储为“,将存储为JPG格式即可。
不用API
Dim fname As String
Private Sub Command1_Click()
Dim c As String, x As Integer, y As Integer
c = ""
MeCaption = "正在读取颜色中"
For x = 1 To Picture1ScaleWidth
For y = 1 To Picture1ScaleHeight
c = c & strRGB(Picture1Point(x - 1, y - 1)) & " " '读取每个像素的十六进制颜色值
Next
c = c & vbCrLf
Next
Open fname & "txt" For Output As #1 '在同一目录下保存txt格式的颜色文件
Print #1, c
Close #1
MeCaption = "读取颜色"
End Sub
Private Function strRGB(ByVal color As Long) As String '颜色值转RGB格式的字符串
Dim r As Integer, g As Integer, b As Integer
r = (color And &HFF) Mod 256
g = ((color And &HFF00) \ &H100) Mod 256
b = ((color And &HFF0000) \ &H10000) Mod 256
strRGB = "RGB(" & b & "," & g & "," & r & ")"
End Function
Private Sub Form_Load()
MeCaption = "读取颜色"
Picture1AutoSize = True
Picture1ScaleMode = 3
fname = "e:\hehejpg"
Picture1Picture = LoadPicture(fname)
End Sub
以上就是关于如何用c++编程实现提取给定图像中任意一点的RGB颜色值全部的内容,包括:如何用c++编程实现提取给定图像中任意一点的RGB颜色值、VB Picture或Image中有一张图,如何取每个像素点的RGB值、如何查看图片的RGB信息等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)