分享

VB PaintPicture(第1篇)

 刮骨剑 2019-04-03

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"

结束

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多