首页 | IT新闻 | 硬件 | 操作系统 | 开发 | 网络编程 | 数据库 | 热门框架 | 网络安全 | 组网 | 建站指南 | 网页制作 | 特效 | 实用技巧 | 服务器 | 办公 | QQ | 探索 | 社区

  • 技术部落
  • 部落首页 > 程序开发 > VB > 正文
  • VB切割一个Container里面的图片
      2008-8-16  来源:技术部落  编辑:Jsbulo  热度:

    前几天在网路上闲逛时,看到有人问了这样的问题:想要写拼图程式,又不想用已经切割好的图片,不知要如何把一个完整的图片利用程式来切割。以下的程式只是示范切割图片的方法,而不是教你如何写拼图程式。

    需求物件:

    Form, PictureBox

    请建立一个新专案,并在表单中放入上述物件,再把以下程式码复制到表单的程式码视窗,最後按下F5来执行。(注意图片路径可能要修改)

    Private Sub Form_Activate()

    ’详细阅读PaintPicture的说明就可了解,在来源图和目的图中,

    ’可以指定某个特定区域来绘图,亦即可以将图片切割或放大,缩小

    Picture1.PaintPicture Picture, 10, 10, 1000, 1000, _

    0, 0, 500, 500

    End Sub

    Private Sub Form_Load()

    AutoRedraw = True

    ’以下路径可能要修改

    Picture = LoadPicture("e:\win95\bubbles.bmp")

    With Picture1

    .Left = 1000

    .Top = 1000

    .Width = 2000

    .Height = 2000

    .AutoRedraw = True

    End With

    End Sub

    PaintPicture说明

    可以通过PaintPicture方法从一个对象(窗体或图像框)向另一对象复制一个矩形区的象素。

    PanintPictrue方法的语法如下:
    Picture1.PaintPicture Picture,DestX,DestY,DestWidth,DestHeight,SourceX,SourceY,SourceWidth,SourceHeight,RasterOp

    .Picture 是图形框,图像框或窗体的Picture属性,是图像的传送源
    .DestX和DestY是传送目标的坐标
    .DestWidth和DestHeight是这个区的大小
    .SourceX和SourceY是要传送的矩形区左上角的坐标
    .RasterOp指定传送的象素如何与目标中的现在象素组合

    例子:
    Picture1(1).PaintPicture Picture1(0).Picture, 0, 0, 1000, 1000, 500, 500, 800, 800, &HCC0020
    传送Picture1(0)控件中的图像到Picture1(1)中
    0,0是将图像传到Picture1(1)的位置
    1000,1000是传送过画的图像的大小
    500,500是截取Picture1(0)图像的位置
    800,800是要传送的矩形区左上角的坐标