vb image picture 如何按比例改变图片的大小
在vb中,如果用picture控件打开一张电脑中的图片后,如何实现图片按比例缩小至picture控件的大小,而非裁切,只是缩小,谢谢各位了在上述程序的基础上,如果再将图片...
在vb中,如果用picture控件打开一张电脑中的图片后,如何实现图片按比例缩小至picture控件的大小,而非裁切,只是缩小,谢谢各位了
在上述程序的基础上,如果再将图片灰度化,又如何让picture控件中显示的是缩小了的而又灰度化的图片呢 展开
在上述程序的基础上,如果再将图片灰度化,又如何让picture控件中显示的是缩小了的而又灰度化的图片呢 展开
4个回答
展开全部
要用PictureBox控件实现图片缩放功能,必须自己编写代码。
PictureBox控件有一个PaintPicture方法,可以对图片进行诸如缩放,复制等操作。
这个方法比较复杂,其格式为:
DestPic.PaintPicture SrcPic.Picture,DestX,DestY[,DestWidth] _
[,DestHeight][,srcX][,srcY][,srcWidth][,srcHeight][,Opcode]
其中,DestPic为目标图形;SrcPic为源图形;DestX,DestY为目标图形的原点;DestWidth,DestHeight为可选的,分别为目标图形的宽度和高度;srcX,srcY为可选的,为原图形的原点;srcWidth,srcHeight为可选的,分别为原图形的宽度和高度;Opcode也为可选的,用于将按位操作传递到位图,一般省略。
下面举个例子。
在窗体上放两个PictureBox控件Picture1和Picture2,通过Picture1的Picture属性为Picture1加载一幅图片,并且将Picture1的AutoSize属性设为True,这样Picture1的大小就和加载的图形大小相同了,便于比较缩放后的效果。现在我们将Picture1的图片缩小成刚好和Picture2控件的大小一样,代码如下:
Dim x1 As Integer
Dim y1 As Integer
x1=0
y1=0
Picture2.PaintPicture _
Picture1.Picture,x1,y1,Picture2.ScaleWidth,Picture2.ScaleHeight,x1, _
y1,Picture1.ScaleWidth,Picture1.ScaleHeight
上面代码中Picture1为源图形,Picture2为目标图形,x1,y1为源和目标图形的原点,这里都设为0。
PictureBox控件有一个PaintPicture方法,可以对图片进行诸如缩放,复制等操作。
这个方法比较复杂,其格式为:
DestPic.PaintPicture SrcPic.Picture,DestX,DestY[,DestWidth] _
[,DestHeight][,srcX][,srcY][,srcWidth][,srcHeight][,Opcode]
其中,DestPic为目标图形;SrcPic为源图形;DestX,DestY为目标图形的原点;DestWidth,DestHeight为可选的,分别为目标图形的宽度和高度;srcX,srcY为可选的,为原图形的原点;srcWidth,srcHeight为可选的,分别为原图形的宽度和高度;Opcode也为可选的,用于将按位操作传递到位图,一般省略。
下面举个例子。
在窗体上放两个PictureBox控件Picture1和Picture2,通过Picture1的Picture属性为Picture1加载一幅图片,并且将Picture1的AutoSize属性设为True,这样Picture1的大小就和加载的图形大小相同了,便于比较缩放后的效果。现在我们将Picture1的图片缩小成刚好和Picture2控件的大小一样,代码如下:
Dim x1 As Integer
Dim y1 As Integer
x1=0
y1=0
Picture2.PaintPicture _
Picture1.Picture,x1,y1,Picture2.ScaleWidth,Picture2.ScaleHeight,x1, _
y1,Picture1.ScaleWidth,Picture1.ScaleHeight
上面代码中Picture1为源图形,Picture2为目标图形,x1,y1为源和目标图形的原点,这里都设为0。
展开全部
Option Explicit
Private Sub Command1_Click()
'里面的是图片的路径改自己的
Picture1 = LoadPicture("d:\wy.bmp")
Picture1.Cls
Picture1.AutoRedraw = True
Picture1.PaintPicture Picture1.Picture, 0, 0, 2000, 3000, , , , , vbSrcCopy
Picture1.Refresh
End Sub
上面这段代码,前提是你确定好Picture1控件的宽和高,这里的宽式2000,高是3000,如果修改Picture1控件的宽和高就相应的修改
Picture1.PaintPicture Picture1.Picture, 0, 0, 2000, 3000, , , , , vbSrcCopy这句的2000和3000的地方就可以了。
Private Sub Command1_Click()
'里面的是图片的路径改自己的
Picture1 = LoadPicture("d:\wy.bmp")
Picture1.Cls
Picture1.AutoRedraw = True
Picture1.PaintPicture Picture1.Picture, 0, 0, 2000, 3000, , , , , vbSrcCopy
Picture1.Refresh
End Sub
上面这段代码,前提是你确定好Picture1控件的宽和高,这里的宽式2000,高是3000,如果修改Picture1控件的宽和高就相应的修改
Picture1.PaintPicture Picture1.Picture, 0, 0, 2000, 3000, , , , , vbSrcCopy这句的2000和3000的地方就可以了。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在属性狂找Strech 改为ture 即可。图片自动缩放
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Private Sub Form_Load()
Dim picW&, picH&
picW = Picture1.Width
picH = Picture1.Height
Picture1.Visible = False
AutoRedraw = True
Picture1.AutoSize = True
PaintPicture Picture1, 0, 0, picW, picH, 0, 0
Picture1.Picture = Me.Image
Picture1.Width = picW
Picture1.Height = picH
Cls
Picture1.Visible = True
End Sub
Dim picW&, picH&
picW = Picture1.Width
picH = Picture1.Height
Picture1.Visible = False
AutoRedraw = True
Picture1.AutoSize = True
PaintPicture Picture1, 0, 0, picW, picH, 0, 0
Picture1.Picture = Me.Image
Picture1.Width = picW
Picture1.Height = picH
Cls
Picture1.Visible = True
End Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询