请教:如何让图片按比例缩放至PictureBox的大小!(VB.NET WINFORM)

道宣 2004-08-28 11:09:24
请教:如何让图片按比例缩放至PictureBox的大小!
...全文
1945 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
道宣 2004-09-09
  • 打赏
  • 举报
回复
谢谢啦
aycn 2004-09-08
  • 打赏
  • 举报
回复
我这里有现成的函数,其实楼上不少高手没贴出来是想让你自已动手的

Friend Sub SetPictureBoxImage(ByVal pb As PictureBox, ByVal sFileName As String)
'定义一个Bitmap对象作为绘制的接受对象
Dim bmp As New Bitmap(pb.Width, pb.Height)
Dim g As Graphics = Graphics.FromImage(bmp)

Dim img As Image = Image.FromFile(sFileName)
Dim rectImage As New Rectangle(0, 0, bmp.Width, bmp.Height)
'按比例缩放
GetScaleZoomRect(img.Width, img.Height, rectImage.Width, rectImage.Height)
g.DrawImage(img, rectImage)

pb.Image = bmp
End Sub

Friend Function GetScaleZoomRect(ByVal nSrcWidth As Integer, ByVal nSrcHeight As Integer, ByRef nDstWidth As Integer, ByRef nDstHeight As Integer)
If nSrcWidth / nSrcHeight < nDstWidth / nDstHeight Then
nDstWidth = nDstHeight * (nSrcWidth / nSrcHeight)
Else
nDstHeight = nDstWidth * (nSrcHeight / nSrcWidth)
End If
End Function
eytech 2004-09-08
  • 打赏
  • 举报
回复
道宣 2004-09-08
  • 打赏
  • 举报
回复
谁来救俺,感激不尽啊!
followafterwind 2004-09-04
  • 打赏
  • 举报
回复
ding
道宣 2004-08-30
  • 打赏
  • 举报
回复
能给点示像代码吗?GDI我还没接触过,不太了解!
zihu928 2004-08-30
  • 打赏
  • 举报
回复
非常简单,这个我写过,就是计算长宽比,按比例缩放 ,得到数据后准备绘图。
绘图也是很简单了,就是调用graphic的draw方法,其中又一个重载方法是带有frectangle参数的,它设定了图片尺寸,你把它设置成图片缩放后尺寸就OK了。
道宣 2004-08-29
  • 打赏
  • 举报
回复
我想实现像WinXP的图像查看器那样的效果,请各位有经验的大哥提供点建议!
boboox 2004-08-29
  • 打赏
  • 举报
回复
关注。。。
道宣 2004-08-29
  • 打赏
  • 举报
回复
this.pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
会变形
有没有不变形的方法?
The123 2004-08-29
  • 打赏
  • 举报
回复
不变形?那你那个PICTUREBOX的长宽比例要和你放置的图片的长宽比例相同才行
koalapopo 2004-08-29
  • 打赏
  • 举报
回复
还想听听有人有方法吗
thelostman 2004-08-28
  • 打赏
  • 举报
回复
一般来说,你需要自己把图像的长宽比例算出来,然后再在picturebox里将长或者宽作为最值 按比例放置
The123 2004-08-28
  • 打赏
  • 举报
回复
PictureBox里有个属性SizeMode

this.pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
打开下面链接,直接免费下载资源: https://renmaiwang.cn/s/hrtqa 在Windows Forms(Winform)开发过程中,通常会遇到需要具备图形编辑功能的应用程序设计。本文旨在详细阐述如何构建一个具有图片标尺功能的Winform应用,支持画矩形、缩放以及删除矩形等基本操作。为了实现这一目标,在Winform应用程序中将添加必要的控件组件。基础界面可能包括PictureBox控件用于显示图像,并搭配“画矩形”、“缩放”和“删除矩形”等功能按钮以触发相关绘图操作。其中,PictureBox作为主要的图像展示组件,而工具按钮则负责执行绘图和编辑功能。 在具体实现中,首先需要设计图片标尺模块:创建一个自定义控件(RulerControl),用于绘制水平与垂直的标尺。该过程通常涉及GDI+技术以确保标尺能随窗体尺寸自动调整位置及长度。其次,在RulerControl中需考虑刻度间距、单位以及边缘对齐方式等参数设置。 接着,实现画矩形功能:通过记录起始点坐标和处理鼠标移动事件来绘制矩形轮廓,并在释放鼠标后将矩形保存至列表中。图形绘制部分则需要利用Paint事件,在每次绘图时重新绘制所有矩形以确保更新效果。 此外,设计缩放功能:添加控制组件如滑块或输入框,允许用户调整图片比例。当比例变化时,设置PictureBox的SizeMode为Zoom模式,并保持中心点不变。同时需注意标尺同步调整以提供准确测量参考。 在操作体验方面,双击矩形可实现删除功能:通过判断点击位置是否落在已绘制矩形边界内来确定命中目标并从列表中移除该矩形。最后,添加保存和加载功能,支持将绘制数据序列化为XML或JSON文件,并提供反序列化以恢复图形状态。 综上所述,设计一个集图片标尺、画矩形、缩放以及删除功能于一体的Winform应用需要综合运用控件布局、GDI+绘图、鼠标事件处理、图形缩放
打开下面链接,直接免费下载资源: https://renmaiwang.cn/s/qxwya 在Windows Forms(Winform)开发中,我们经常需要在程序运行时动态地调整控件的大小,以适应用户的交互或应用程序的需求。标题“winform 运行时控件更改大小”涉及的核心知识点就是在应用程序运行过程中改变控件尺寸的技术。这里我们将深入探讨如何使用VB.NET和C#两种编程语言来实现这一功能,特别关注如何处理图片控件(PictureBox)的SizeMode属性。让我们了解VB.NET中的方法。在VB.NET中,你可以通过设置控件的Width和Height属性来改变控件的大小。例如,假设我们有一个名为pictureBox1的PictureBox控件,可以这样更改其大小:```vb.netpictureBox1.Width = 新宽度pictureBox1.Height = 新高度```对于图片控件,特别要注意的是,如果希望图片比例缩放以填充整个控件,需要将SizeMode属性设置为StretchImage:```vb.netpictureBox1.SizeMode = PictureBoxSizeMode.StretchImage```现在,我们转向C#。在C#中,调整控件大小的逻辑与VB.NET类似:```csharppictureBox1.Width = 新宽度;pictureBox1.Height = 新高度;```同样,为了使图片在控件内按比例拉伸填充,我们需要设置SizeMode:```csharppictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;```除了直接设置控件的Width和Height属性外,还可以使用Size属性来同时改变宽度和高度:```vb.netpictureBox1.Size

16,721

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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