如题,请高手给点思路,谢谢!

解决方案 »

  1.   

    ==========================================================================
    SavePicture 语句 
    从对象或控件(如果有一个与其相关)的 Picture 或 Image 属性中将图形保存到文件中语法
    SavePicture picture, stringexpression
    SavePicture 语句的语法包含下面部分:
    picture: 产生图形文件的 PictureBox 控件或 Image 控件。 
    stringexpression: 欲保存的图形文件名。 说明
    无论在设计时还是运行时图形从文件加载到对象的 Picture 属性,而且它是位图、图标、元文件或增强元文件,则图形将以原始文件同样的格式保存。如果它是 GIF 或 JPEG 文件,则将保存为位图文件
    =========================================================================================
    PaintPicture 方法
    用以在 Form, PictureBox 或 Printer 上绘制图形文件(.bmp、.wmf、.emf、.cur、.ico或 .dib)的内容。不支持命名参数。语法
    object.PaintPicture picture, x1, y1, width1, height1, x2, y2, width2, height2, opcodePaintPicture 方法的语法包含下列部分:
    object: 可选的。一个对象表达式,其值为“应用于”列表中的一个对象。如果省略 object,带有焦点的 Form :对象缺省为 object。 
    Picture: 必需的。要绘制到 object 上的图形源。Form 或 PictureBox 必须是 Picture 属性。 
    x1, y1: 必需的。均为单精度值,指定在 object 上绘制 picture 的目标坐标(x-轴和y-轴)。object 的 ScaleMode 属性决定使用的度量单位。  
    Width1 可选的。单精度值,指示 picture 的目标宽度。object 的 ScaleMode 属性决定使用的度量单位。如果目标宽度比源宽度 (width2) 大或小,将适当地拉伸或压缩 picture。如果该参数省略,则使用源宽度。 
    Height1 可选的。 单精度值,指示 picture 的目标高度。object 的 ScaleMode 属性决定使用的度量单位。如果目标高度比源高度 (height2) 大或小,将适当地拉伸或压缩 picture。如果该参数省略,则使用源高度。 
    x2, y2 可选的。均为单精度值,指示 picture 内剪贴区的坐标(x-轴和y-轴)。object 的 ScaleMode 属性决定使用的度量单位。如果该参数省略,则缺省为 0。 
    Width2 可选的。单精度值,指示 picture 内剪贴区的源宽度。object 的 ScaleMode 属性决定使用的度量单位。如果该参数省略,则使用整个源宽度。 
    Height2 可选的。 单精度值,指示 picture 内剪贴区的源高度。object 的 ScaleMode 属性决定使用的度量单位。如果该参数省略,则使用整个源高度。 
    Opcode 可选的。是长型值或仅由位图使用的代码。它用来定义在将 pictur 绘制到 object 上时对 picture 执行的位操作(例如, vbMergeCopy 或 vbSrcAnd 操作符)。关于位操作符常数的完整列表,请参阅 Visual Basic Help 文件中的 RasterOp Constants 主题。 
    在使用opcode时有一些限制。例如,如果资源是图标或图元文件,则只能使用 vbSrcCopy,而不能使用其他的opcode;并且,与图案 (或 SDK 术语中的"画笔"),如 MERGECOPY、 PATCOPY、 PATPAINT 和 PATINVERT,相交互的opcode实际上是同目标的 FillStyle 属性交互。注意   Opcode 用于将按位操作传递到位图。当传递其他图象类型时将一个值给该参数会造成“无效过程调用或参数”错误。这是设计的原因。要避免这个错误,对于除位图外的图象,将 Opcode 参数置为空。
     
    说明
    通过使用负的目标高度值 (height1) 和 / 或目标宽度值 (width1) ,可以水平或垂直翻转位图。
    可以省略任何多个可选的尾部的参数 。如果省略了一个或多个可选尾部参数,则不能在指定的最后一个参数后面使用逗号。如果想指定某个可选参数,则必须先指定语法中出现在该参数前面的全部参数。
    注意,在将一个.Bmp加载入 PictureBox 控件和使用 Windows API 函数 BitBlt() 添加图片之间有一点不同。当您对一个图象使用 BitBlt() 时,PictureBox 控件不知道象您使用 LoadPicture方法那样去调整大小。将 ScaleWidth 和 ScaleHeight 属性设置为图象的大小也不起作用。如果您想在使用 BitBlt 之后用 PictureBox 调整新图片的大小,必须用代码手工做,转换单位并处理边框,下面是如何这样做的一个简单示例:
    Sub ResizePictureBoxToImage(pic as PictureBox, twipWd _
      as Integer, twipHt as Integer)
     ' 该代码假设所有的单位都为缇。如果
     ' 不是,必须在调用该例程之前,转换为缇。
     ' 这里也假设图象显示在0,0处。
     Dim BorderHt as Integer, BorderWd as Integer
     BorderWd = Pic.Width - Pic.ScaleWidth
     BorderHt = Pic.Height - Pic.ScaleHeight
     pic.Move pic.Left, pic.Top, twipWd + BorderWd, _
       twipHt + BorderHt
    End Sub
    ==========================================================================================
    Image 属性
    返回持久图形的句柄,该句柄由 Microsoft Windows 运行环境提供。语法
    object.Image
    object 所在处代表一个对象表达式,其值是“应用于”列表中的一个对象。说明
    对象的 AutoRedraw 属性决定是否用持久图形或通过 Paint 事件重绘对象。 Windows 运行环境通过给对象的持久图形分配一个句柄来标识它;用 Image 属性可以得到该句柄。
     Image 值的存在,不受 AutoRedraw 属性设置值的影响。如果 AutoRedraw 为 True,并且还没有绘任何内容,图象仅显示由 BackColor 属性和图片确定的颜色。
    可以给 Picture 属性分配 Image 的值。Image 属性还提供了一个传递给 Windows API调用的值。
     Image、DragIcon 和 Picture 属性,通常用在给其它属性分配值的情况,如用 SavePicture 语句保存,或在剪贴板上放置一些内容。除图象数据类型外,不能把它们赋给临时变量。AutoRedraw 属性可以引起 Image 改变,Image 是指向位图的句柄。当 AutoRedraw 为 True 时,对象的 hDC 属性成为指向设备描述体的句柄,该设备描述体包含 Image 返回的位图。
      

  2.   

    知道以上几个函数的用法,就可以进行图片的保存工作了
    1、paintpicture想要的图像到目标图片框(picturebox)
    2、可以向目标图片框中绘制图形,操作放法与printer(打印机)基本相同
    3、savepicture目标图片框的Image即可
    注意:只能保存BMP图像
      

  3.   

    忘了说,我就是要JPG格式的,BMP不行。
      

  4.   

    //忘了说,我就是要JPG格式的,BMP不行。SavePicture保存的文件是BMP格式的,如果要保存为JPG,需要第三方控件。
      

  5.   

    用bitblt函数可以实现
     Call BitBlt(newpic.hdc, 0, 0, newpic.Width, newpic.Height, mainpic.hdc, newpic.left, newpic.top, vbSrcCopy)
    '    mainpic.PaintPicture newpic.Picture, newpic.Left, newpic.Top, , , , , , , vbSrcCopy '&H8800C6
        On Error GoTo Err
        CommonDialog1.Flags = cdlOFNOverwritePrompt
        CommonDialog1.Filter = "jpge" & "(*.jpg)|*.jpg|bitbmp(*.bmp)|*.bmp"
        CommonDialog1.FilterIndex = 1
        CommonDialog1.ShowSave
        SavePicture newpic.Image, CommonDialog1.FileName