VB编程实现图像的漂亮效果.docx

上传人:asd****56 文档编号:70344247 上传时间:2023-01-19 格式:DOCX 页数:4 大小:23.52KB
返回 下载 相关 举报
VB编程实现图像的漂亮效果.docx_第1页
第1页 / 共4页
VB编程实现图像的漂亮效果.docx_第2页
第2页 / 共4页
点击查看更多>>
资源描述

《VB编程实现图像的漂亮效果.docx》由会员分享,可在线阅读,更多相关《VB编程实现图像的漂亮效果.docx(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、VB编程实现图像的漂亮效果参数表-Angle 光照倾角,取值0到90之间,以角度为单位WidthOfArea 光照区宽度,取值大于1的整数,以像素为单位Speed 光照区运动速度,取值大于1的整数EnhanceRatio 光照强度参数,取值大于1的整数-好,原理就这么多,现在我们开始动手实现吧!打开VB6.0,选择新建标准EXE工程,在主窗口form1中绘制下表中所列控件并设置窗体和各控件的属性。控件 属性 设置Form1 Name Form1ScaleMode 3-pixelPictureBox Name PicDestScaleMode 3-pixelPicture 背景图PictureB

2、ox Name PicSourceScaleMode 3-pixelPicture 主体图Label Name LblACaption 角度Textbox Name TxtAText 30Label Name LblWCaption 宽度Textbox Name TxtWText 15Label Name LblECaption 强度Textbox Name TxtEText 15Label Name LblSCaption 速度Textbox Name TxtSText 1CommandButton Name Cmd1Caption 开始特效生成最后的窗体。在form1的代码编辑窗口中添加如

3、下代码:以下是引用片段:OptionExplicitConstpi=3.1415926api函数声明-PrivateDeclareSubCopyMemoryLibkernel32AliasRtlMoveMemory_(DestinationAsAny,SourceAsAny,ByValLengthAsLong)拷贝内存PrivateDeclareFunctionGetPixelLibgdi32(ByValhdcAsLong,_ByValXAsLong,ByValYAsLong)AsLong取像素值PrivateDeclareFunctionSetPixelLibgdi32(ByValhdcAs

4、Long,_ByValXAsLong,ByValYAsLong,ByValcrColorAsLong)AsLong设置像素值PrivateSubcmd1_Click()cmd1.Enabled=FalseMakeSparktxtA,txtW,txtS,0,txtE,65,10cmd1.Enabled=TrueEndSubPrivateSubMakeSpark(AngleAsLong,WidthOfAreaAsLong,_SpeedAsLong,MaskColorAsLong,_EnhanceRatioAsSingle,OffsetXAsLong,OffsetYAsLong)熠熠生辉效果参数表-

5、Angle光照倾角WidthOfArea光照区宽度Speed光照区运动速度MaskColor主体图的屏蔽色EnhanceRatio光照强度参数OffsetX主体图叠加到目标图时的X偏移OffsetY主体图叠加到目标图时的Y偏移Dimi&,X&,Y&,L&,Color&,EnhanceValue&DimRAsByte,GAsByte,BAsByteWithpicSourceFori=0To.Width+.Height*Tan(Angle*pi/180)+WidthOfArea_StepSpeed扫描主体图ForX=0To.Width-1ForY=0To.Height-1Color=GetPixe

6、l(.hdc,X,Y)遍历主体图的像素IfColor=MaskColorThenskip跳过ElseL=Abs(X-(i-Y*Tan(Angle*pi/180)计算当前像素于扫描线的X方向距离IfL255,255,R+EnhanceValue)G=IIf(G+EnhanceValue255,255,G+EnhanceValue)B=IIf(B+EnhanceValue255,255,B+EnhanceValue)Color=RGB(R,G,B)算出加强亮度后的颜色值EndIfSetPixelpicDest.hdc,X+OffsetX,Y+OffsetY,Color拷贝像素到目标图EndIfNe

7、xtYNextXpicDest.Refresh一帧已处理完,显示DoEventsNextiEndWithEndSubPrivateFunctionExtractR(ColAsLong)AsByte提取一个颜色值的红色分量值,红色分量位于这个颜色值的最低字节DimtmpAsByteCopyMemorytmp,ByValVarPtr(Col),1ExtractR=tmpEndFunctionPrivateFunctionExtractG(ColAsLong)AsByte提取一个颜色值的绿色分量值,绿色分量的位置比红色分量高一字节DimtmpAsByteCopyMemorytmp,ByValVarPtr(Col)+1,1ExtractG=tmpEndFunctionPrivateFunctionExtractB(ColAsLong)AsByte提取一个颜色值的蓝色分量值,蓝色分量的位置比绿色分量高一字节DimtmpAsByteCopyMemorytmp,ByValVarPtr(Col)+2,1ExtractB=tmpEndFunction本程序在Win2000+VB6.0下调试通过。青岛男科医院|

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他杂项

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁