用savepicture如何定义保存的图象的长度和宽度!

xiruo 2002-04-16 07:24:32
Private Sub Form_Load()
Form1.ScaleMode = pixel
Form1.AutoRedraw = True
Form1.Width = 1000
Form1.Height = 1000
Form1.BackColor = vbWhite
Line (0, 0)-(1000, 1000)
SavePicture Image, "default_img.bmp"
End Sub
保存到的图片长度和宽度是800*600
我怎么改变这个保存图片的长度和宽度!
***********************
还有就是我定义的form1.width和form1.height怎么样让它以像素来表示,
为什么screen.width不等于800,screen.height不等于600???
...全文
116 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiruo 2002-04-16
  • 打赏
  • 举报
回复
由于一些原因必须放在form中,怎么办???
Alsen 2002-04-16
  • 打赏
  • 举报
回复
我同意xxlroad(土八路) ( )
xxlroad 2002-04-16
  • 打赏
  • 举报
回复
请放到 picture1 里面 就能很好的调整大小了
Private Sub Command2_Click()
Picture1.AutoRedraw = True
SavePicture Picture1.Image, "C:\cc.bmp"
End Sub
zyl910 2002-04-16
  • 打赏
  • 举报
回复

ScaleX、ScaleY 方法


用以将 Form,PictureBox 或 Printer 的宽度或高度值从一种 ScaleMode 属性的度量单位转换到另一种。不支持命名参数。

语法

object.ScaleX (width, fromscale, toscale)

object.ScaleY (height, fromscale, toscale)

ScaleX 和 ScaleY 方法的语法包含如下部分:

部分 描述
object 可选的。一个对象表达式,其值为“应用于”列表中的一个对象。如果省略 object,则带有焦点的 Form 对象缺省为 object。
width 必需的。为 object 指定被转换的度量单位的数量。
height 必需的。为 object 指定被转换的度量单位的数量。
fromscale 可选的。一个常数或数值,按照下列设置中的描述,指定 object 的 width 或 height 从哪一种坐标系统转换。fromscale 可取的数值与 ScaleMode 属性的数值加上 HiMetric 的新数值相同。
toscale 可选的。一个常数或数值,按照下列“设置值”中的描述,指定 object 的 width 或 height 转换到哪一种坐标系统。toscale 可取的数值与 ScaleMode 属性的数值加上 HiMetric 的新数值相同。


设置值

用于 fromscale 和 toscale 设置值有:

常数 值 描述
vbUser 0 用户定义:指示 object 的宽度和高度设置为自定义值。
vbTwips 1 缇(每逻辑英寸 1440 缇;每逻辑厘米 567 缇)。
vbPoints 2 磅(每逻辑英寸 72 点)。
vbPixels 3 像素 (显示器或打印机分辨率的最小单位)。
vbCharacters 4 字符(水平 = 每单位 120 缇,垂直 = 每单位 240 缇)。
vbInches 5 英寸
vbMillimeters 6 毫米
vbCentimeters 7 厘米
vbHimetric 8 HiMetric。如果省略 fromscale,则 HiMetric 为缺省值。
vbContainerPosition 9 决定控件位置。
vbContainerSize 10 决定控件大小。


说明

ScaleX 和 ScaleY 方法按 fromscale 指定的度量单位取值(width 或 height),并将它转换为 toscale 指定的度量单位下相应的值。

也可以结合 PaintPicture 方法使用 ScaleX 和 ScaleY。
zyl910 2002-04-16
  • 打赏
  • 举报
回复
先用“PaintPicture 方法” 把图片的部分复制到另一个PictureBox中,再保存那个PictureBox的图片

PaintPicture 方法


用以在 Form, PictureBox 或 Printer 上绘制图形文件(.bmp、.wmf、.emf、.cur、.ico或 .dib)的内容。不支持命名参数。

语法

object.PaintPicture picture, x1, y1, width1, height1, x2, y2, width2, height2, opcode

PaintPicture 方法的语法包含下列部分:

部分 描述
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
xxlroad 2002-04-16
  • 打赏
  • 举报
回复
Private Sub Command1_Click()
Print Screen.Width \ Screen.TwipsPerPixelX '800
Print Screen.Height \ Screen.TwipsPerPixelY '600
End Sub
zyl910 2002-04-16
  • 打赏
  • 举报
回复
MSDN:

ScaleMode 属性


当使用图形方法或调整控件位置时,返回或设置一个值,该值指示对象坐标的度量单位。

语法

object.ScaleMode [= value]

ScaleMode 属性的语法包含下面部分:

部分 描述
Object 对象表达式,其值是“应用于”列表中的一个对象。
Value 一个指定度量单位的整数,“设置值”中有详细描述。


设置值

value 的设置值为:

常数 设置值 描述
VbUser 0 指出 ScaleHeight、ScaleWidth、ScaleLeft 和 ScaleTop 属性中的一个或多个被设置为自定义的值。
VbTwips 1 (缺省值)缇(每逻辑英寸为 1440 缇;每逻辑厘米为 567 个缇)。
VbPoints 2 磅(每逻辑英寸为 72 个磅)。
VbPixels 3 像素(监视器或打印机分辨率的最小单位)。
VbCharacters 4 字符(水平每个单位=120 缇;垂直每个单位=240 缇。)
VbInches 5 英寸。
VbMillimeters 6 毫米。
VbCentimeters 7 厘米。
VbHimetric 8 HiMetric
VbContainerPosition 9 控件容器使用的单位,决定控件位置。
VbContainerSize 10 控件容器使用的单位,决定控件的大小。


说明

相关的 ScaleHeight、ScaleWidth、ScaleLeft 与 ScaleTop 属性的使用,可以建立起一个带有正、负坐标的自定义坐标系统。这四个 Scale 属性与 ScaleMode 属性按下面的方式进行交互作用:

把其它任何 Scale 属性设置为任何值都将 ScaleMode 自动地设置为 0。ScaleMode 等于 0 是用户定义。


把 ScaleMode 属性设置为一个大于 0 的数,将使 ScaleHeight 和 ScaleWidth 的度量单位发生改变,并将 ScaleLeft 和 ScaleTop 设置为 0。CurrentX 和 CurrentY的设置值将发生改变以反映当前点的新坐标。
xiruo 2002-04-16
  • 打赏
  • 举报
回复
form1.scalewidth和form1.scaleheight也不行呀,存出来的图片还是一样那么大!
xiruo 2002-04-16
  • 打赏
  • 举报
回复
我定义的form1.width和form1.height怎么样让它以像素来表示,
为什么screen.width不等于800,screen.height不等于600???
ayuu 2002-04-16
  • 打赏
  • 举报
回复
其实,你使用picture更加好。
picture.paintpicture 可以实现你想要的任何高度,宽度。包括局部图像。
ayuu 2002-04-16
  • 打赏
  • 举报
回复
你用form1.scalewidth和form1.scaleheight来控制。

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧