VB读取屏幕或者截下保存成BMP/JPG格式,将每个像素转换成数字形式保存到TXT中,处理后再转换成图片格式显示

我主要要做的是提取出屏幕上图像重复部分。打个比方,我桌面选用一张图片,选择平铺模式,那么屏幕上就是一张图片阵列N个,我想提取出这张图片。现在的想法是将图片的每个像素用数字... 我主要要做的是提取出屏幕上图像重复部分。打个比方,我桌面选用一张图片,选择平铺模式,那么屏幕上就是一张图片阵列N个,我想提取出这张图片。现在的想法是将图片的每个像素用数字形式保存下来,比如第一点是红色,那么就是255,0,0,然后就可以和后面比较,当再出现一点255,0,0,就接着比较它们各自后面的一点,这样一直比较下去相等到图片重复结束为止,就可以将这个重复部分转换回图片形式输出。
请教高手,这个方法是否是最简单的。图像转换成数字的关键代码是什么?能否给个大致的框架。谢谢!
展开
 我来答
百度网友4684e1e
2012-07-04 · TA获得超过2309个赞
知道小有建树答主
回答量:1266
采纳率:0%
帮助的人:553万
展开全部
Private Declare Function GetPixel Lib "gdi32" Alias "GetPixel" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long 'API声明
Private Type RGB_value '定义结构体,用来保存像素值
dim unused as byte ;
dim blue as byte;
dim green as byte;
dim red as byte;
End Type
Private Sub Command1_Click() ’CODE 运行

Dim myrgb as RGB_value ‘定义结构体

Dim MyX as integer ’定义循环变量(下同)
Dim MyY as integer
on error goto errr1 ‘错误处理(下同 )
PictureBox1.Picture=LoadPicture("你的图片path")
while(true)
{
on error goto errr2
myrgb=GetPixel(picturebox1.hdc,myx,myy) ’获取像素值
myy=myy+1 ‘像素点Y自增
if myy>(picturebox1.width/15) then ’判断是否超出范围(Tip:VB像素单位不统一,需要除15 )
{
myx+1
myx=0
}
on error goto errr3
open "d:\rgb.txt" for append as #1
print "蓝“+myrgb.blue
print ”绿“+myrgb.green
print ”红"+myrgb.red
close #1
}
Exit Sub
err1:
msgbox"image file open error!"
exit sub
err2:
msgbox "get Pixel error!"
exit sub
err3:
msgbox “save file open error!"
End Sub

---------------------------------------------------
题外话,我手好疼。。可能有手误,无亲测。
kaoambbnb123
2012-07-05 · 超过34用户采纳过TA的回答
知道答主
回答量:169
采纳率:0%
帮助的人:120万
展开全部
上面一高人
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式