电信主站 网通分站
购买流程 付款方式 常见问题 在线提问 续租服务 购物车
用户名: 密 码: 忘记密码?
首 页
域名注册
虚拟主机
双线主机
服务器租用
VPS主机
企业邮局
代理专区
客服中心
虚拟主机行业资讯 虚拟主机评测对比 互联网最新动态 技术学院 站长资讯 在线教程 网站运营
搜索优化 服务器 网络编程 图形图象 站长之家 网页制作 操作系统
冲浪宝典 软件教学 视频通信 办公软件 邮件系统 网络安全 认证考试
您当前位置:西部数码->资讯中心-> 操作系统-> Windows xp教程
利用pictureclip进行图像局部处理_visualbasic教程
作者:网友供稿 点击:0
  西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!虚拟主机可在线rar解压,自动数据恢复设置虚拟目录等.虚拟主机免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金!
文章页数:[1] 
在图像的处理过程中经常需要对图像进行局部放大或其它处理操作,在VB中提供了一个非常实用的图像处理控件PictureClip,利用此控件可以方便的完成图像的局部放大或缩小操作。PictureClip控件的功能就是对一个原始位图进行剪裁,根据用户的需要可以有两种剪裁方法,第一种方法是确定固定的剪裁尺寸,通过确定横向与纵向的剪裁份数,控件均匀地把原始位图分成不同的图像块,通过序号可以访问每一个图像块,此时需要的属性有:PicClip1.Picture:指定被剪裁的图像;PicClip1.Cols:确定剪裁的横向份数;PicClip1.Rows:确定剪裁的纵向份数;PicClip1.GraphicCell(i):访问第i个图像块;另一种剪裁方法是随机剪裁,确定剪裁的起点,再确定需要剪裁的横向与纵向尺寸,此固定区域内的图像即剪裁为一可访问的图像,涉及的属性有:          PictureClip1.ClipX:指定剪裁的横向起点坐标;
     PictureClip1.ClipY:指定前裁的纵向起点坐标;                PictureClip1.ClipHeight:指定剪裁的横向长度;       
     PictureClip1.ClipWidth:指定剪裁的纵向长度;
     PictureClip1.Clip:访问被剪裁的图形;
  还有两个重要的属性,即StretchX和StretchY,此属性指定被剪裁目标的图像的大小,当此值与原始位图尺寸不相同时,将引起剪裁图像的放大或缩小,这就是利用此控件进行图像局部放大或缩小的原理;
  利用上述两种剪裁方法均可以进行图像的局部放大或缩小处理,但在实际应用中还是第二种剪裁方法更为实用,在具体的编程时还应注意以下几点:
  1.在PictureClip的StretchX及其它属性中均以象素为单位,所以在对图像进行操作时必须置作图单位为象素,即使用ScaleMode=3命令;
  2.在进行随机剪裁时,如果使用固定的剪裁尺寸,当剪裁坐标移到图像的边缘时,图像实际尺寸小于剪裁尺寸,将引起边界溢出,解决的办法是始终以鼠标坐标点之后的图像尺寸为剪裁尺寸,然后再调整StretchX及StretchY值为剪裁尺寸的固定倍数,即可实现局部图像固定比率的放大或缩小操作;
  3.放大或缩小的局部图像需要装入图像框或其它容器控件中,此窗口的位置必须是灵活变化的,即自动让开被剪裁的区域,可通过判断被剪裁区域起点的位置来临时调整图像框Letf及Top属性来完成;

  在下面是一个完整的演示程序,需要在窗体中放置一个PictureClip1及两个PictureBox控件,Picture1可为任意大小,而Picture2最好接近窗体的1/4,用于显示局部放大或缩小的图像,之后把下面的代码填入相应的事件之中,运行程序之后,将在屏幕上显示图像,用鼠标在此图像上移动,如果按下左键移动则实现图像的局部放大,按下右键移动实现图像的局部缩小,不按下任何键则只在小窗口内显示原尺寸的局部图像,剪裁的起点是鼠标当前位置。

  以上程序及方法在WINDOWS95系统下、VB5.0环境下调试通过。

  附原程序:(下载)
  注释:准备窗体和图像框
PrivateSubForm_Load()
  Picture1.ScaleMode=3
  Picture1.Picture=LoadPicture("c:\windows\setup.bmp")
  Form1.Width=Screen.Width
  Form1.Height=Screen.Height
  Form1.Top=0
  Form1.Left=0注释:修改PICTURE尺寸与屏幕相同
  Picture1.Width=Screen.Width
  Picture1.Height=Screen.Height
  Picture1.Top=0
  Picture1.Left=0
  PictureClip1.Picture=Picture1.Picture
EndSub
注释:移动鼠标放大或缩小图像
PrivateSubPicture1_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)
  Dimpx,py,LeftDown,rightDown,num
  LeftDown=(ButtonAndvbLeftButton)>0rightDown=(ButtonAndvbRightButton)>0
  IfLeftDownThennum=2注释:左键按下放大二位
  Else
    IfrightDownThennum=1/2注释:右键按下缩小
    Elsenum=1注释:无键按下原来尺寸
    EndIf
  EndIf
  IfX<Picture1.ScaleWidth/2Then
    px=Picture1.Width/2
  Else
    px=0
  EndIf
  IfY<Picture1.ScaleHeight/2Then
    py=Picture1.Height/2
  Else
    py=0
  EndIf
  Picture2.Left=px
  Picture2.Top=py注释:以上实时调整小窗口坐标
  Form1.Caption=Str$(X) ":" Str$(Y)PictureClip1.ClipX=X注释:以当前鼠标位置为起点
  PictureClip1.ClipY=Y
  PictureClip1.ClipHeight=Picture1.ScaleHeight-Y
  PictureClip1.ClipWidth=Picture1.ScaleWidth-X
  PictureClip1.StretchX=(Picture1.ScaleWidth-X)*num
          PictureClip1.StretchY=(Picture1.ScaleHeight-Y)*num
  Picture2.Picture=PictureClip1.Clip注释:小窗口显示图像
EndSub->


文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!
相关主题
文章页数:[1] 
Google
热门文章
·photoshop教程给照片调出亮丽的色彩_photoshop教程
·数据访问控制--多客户环境下vb数据库编程之(2)_visualbasic教程
·关于vb语言和怎样学习vb_visualbasic教程
·利用timegettime函数更精准地计算差_visualbasic教程
·利用pictureclip进行图像局部处理_visualbasic教程
·在vb中调用api函数动态改变及恢复屏幕设置_visualbasic教程
·如何在vb中判断windows9x的运行模式_visualbasic教程
·固定长度字符串数组:赋值快,释放快!_visualbasic教程
·给图形对象赋予材质_autocad教程
·网络广告首超杂志 房地产和it居投放量之首_it动态

最新文章
·photoshop照片处理:色彩的强化及优化_photoshop教程
·photoshop cs3新增黑白转换命令原理剖析_photoshop教程
·photoshop“非主流”照片文字合成表现手法_photoshop教程
·php的xml分析函数_php技巧
·php对文本数据库的基本操作方法_php技巧
·加速你的windows xp搜索功能的巧妙方法_windows xp
·用photoshop打造奥运五环金属标牌_photoshop教程
·photoshop将模糊照片变得清晰艳丽_photoshop教程
·用photoshop打造美丽的圣诞大头贴_photoshop教程
·photoshop特效实例制作:瑰丽晚霞_photoshop教程


 
 


版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!

特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
  打印  刷新  关闭
返回首页 |关于我们 | 联系我们 | 付款方式 | 创业联盟 | 虚拟主机 | 资讯中心 | 友情链接 | 网站地图

版权所有 西部数码(www.west263.com)
CopyRight (c) 2002~2006 west263.com all right reserved.
公司地址:四川成都市万和路90号天象大厦4楼 邮编:610031
电话总机:028-86262244 86263048 86263408 86263960 86264018 86267838
售前咨询:总机转201 202 203 204 206 208
售后服务:总机转211 212 213 214
财务咨询:总机转224 223 传真:028-86264041 财务QQ:点击发送消息给对方635483282
售前咨询QQ:点击发送消息给对方2182518 点击发送消息给对方241975952 点击发送消息给对方275026793 点击发送消息给对方408235859
售后服务QQ:点击发送消息给对方17708515 点击发送消息给对方307742704 点击发送消息给对方287976517 点击发送消息给对方363783715
《中华人民共和国增值电信业务经营许可证》编号:川B2-20030065号