VB PaintPicture(第1篇)

VB PaintPicture (第1篇)

1.函数参数

对象.PaintPicture picture,x1,y1,[width1],[height1],[x2],[y2],[width2],[height2],[opcode]

对象: 可以是 Form,picturebox或printer等

picture :源图片

x1,y1 :对象上的起点坐标

width1,height1 :对象上的宽和高

x2,y2 : 截取源图片的起点坐标

width2,height2: 截取原图片的宽和高

opcode :操作码,这里先不做介绍

这个函数是这样理解的:简单来说就是从源图片截取一部分放到目标对象的规定位置。详细来说就是 在 picture参数指定图片 上 截取 从 (x2,y2)点开始的大小为width2,height2的部分,拉伸放在 对象的 (x1,y1)开始的 大小为width1,height1的地方。

这里x1,y1,width1,height1,x2,y2,width2,height2可正可负(宽向右为正)(高向下为正),可以非常灵活的使用。

2.简单的图片编辑

有两个picturebox 控件,分别为pic1,pic2,现在pic1中加载了图片,我们要将pic1中的图片处理后放入pic2

1.复制

pic2.Cls
pic2.PaintPicture pic1.Picture, 0, 0, pic1.Width, pic1.Height, 0, 0, pic1.Width, pic1.Height

首先清空pic2,之后用paintpicture函数,从pic1.picture上的(0,0)位置开始,截取pic1.width,pic1.height 大小的图片,拉伸放入 pic2的(0,0)位置开始,大小为pic1.width,pic1.height 的 地方,如图

复制

如果我们代码改成这样

pic2.Cls
pic2.PaintPicture pic1.Picture, 0, 0, pic2.Width, pic2.Height, 0, 0, pic1.Width, pic1.Height

那就变成了 从pic1.picture上的(0,0)位置开始,截取pic1.width,pic1.height 大小的图片,拉伸放入 pic2的(0,0)位置开始,大小为pic2.width,pic2.height 的 地方,如图

错误复制

2.放大,缩小

放大1.5倍

pic2.Cls
pic2.PaintPicture pic1.Picture, 0, 0, pic1.Width * 1.5, pic1.Height * 1.5, 0, 0, pic1.Width, pic1.Height

从pic1.picture上的(0,0)位置开始,截取pic1.width,pic1.height 大小的图片,拉伸放入 pic2的(0,0)位置开始,大小为pic1.width*1.5,pic1.height*1.5 的 地方。
放大

同理,缩小图片1.5倍代码为

pic2.Cls
pic2.PaintPicture pic1.Picture, 0, 0, pic1.Width / 1.5, pic1.Height / 1.5, 0, 0, pic1.Width, pic1.Height

缩小

3.左右翻转,上下翻转

左右翻转代码

pic2.Cls
pic2.PaintPicture pic1.Picture, pic1.ScaleWidth, 0, -pic1.ScaleWidth, pic1.ScaleHeight, 0, 0, pic1.Width, pic1.Height

左右翻转

这里可以看到负的参数。 我们把pic1的图片从左上角往右下方拎起来,在放入pic2时却从右上角开始,往左下角放。这样就实现了图片的左右翻转。上下翻转同理。代码如下

pic2.Cls
pic2.PaintPicture pic1.Picture, 0, pic1.ScaleHeight, pic1.ScaleWidth, -pic1.ScaleHeight, 0, 0, pic1.Width, pic1.Height

上下翻转

4.反转(反色)

这里涉及到一个opcode参数,博主还没详细学习。。只给出代码和图

pic2.Cls
pic2.PaintPicture pic1.Picture, 0, 0, , , , , , , vbNotSrcCopy

反色

会变得好可怕。。

5.保存

SavePicture pic2.Image, "F:\桌面\1.jpg"

结束

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值