【问题标题】:Larger Image to fit in picturebox更大的图像以适合图片框
【发布时间】:2011-08-11 18:05:30
【问题描述】:

如您所见,第一张图片的大小为 (1024*768),并且正确显示在图片框中,而在第二种情况下,图片大小为 (1600*900),显示为一半图片框和其余的都丢失了。所以不,我想在图片框中保存该图像,无论大小是多少,即使它大于图片框的大小。我需要缩放该图像。那我该怎么做这样做?还有一件事是我需要在图像加载到它时自动调整图片框的大小,就像我们在灯箱效果中看到的那样。 http://www.lokeshdhakar.com/projects/lightbox2/ -------->例子。

任何帮助将不胜感激!

这是我得到的。

【问题讨论】:

    标签: vb.net image scaling


    【解决方案1】:

    如果是winforms应用,可以将PictureBoxSizeMode属性设置为PictureBoxSizeMode.Zoom。请注意,这会增加较小图像的大小以填充框架,因此您可能需要先测量图像,以检查任一边缘是否太长,然后将 SizeMode 设置为 PictureBoxSizeMode.Zoom 或 @987654326 @。

    【讨论】:

    • 是的,我已经做到了并且工作了,但我需要向他们展示它的实际宽度和高度,同时我需要缩放图像以使其适合我给出的类似于带有链接的灯箱的示例,我需要实现这一点。
    • @volty:在您的问题中,您声明您需要扩展它们。你不能同时缩放它们的实际大小。
    • 我需要一个简单的图片框动画,以便它应该扩展到图像的大小,我该怎么做?
    • 啊,现在我明白了。那是一个完全不同的故事。在 WPF 中这可能会更容易实现。
    • 感谢 Fredik 为我提供帮助,您能否为我提供任何链接,我可以将我的 VB.net 项目转换为 WPF 吗?
    【解决方案2】:

    我知道这已标记为已回答,但我是为自己的一个应用程序编写的。希望它可以帮助某人..

    Private Sub ScaleImage(ByVal p As PictureBox, ByRef i As Bitmap)
        If i.Height > p.Height Then
            Dim diff As Integer = i.Height - p.Height
            Dim Resized As Bitmap = New Bitmap(i, New Size(i.Width - diff, i.Height - diff))
            i = Resized
    End If
        If i.Width > p.Width Then
            Dim diff As Integer = i.Width - p.Width
            Dim Resized As Bitmap = New Bitmap(i, New Size(i.Width - diff, i.Height - diff))
            i = Resized
    End If
    

    结束子

    【讨论】:

      【解决方案3】:

      使图像适合任意大小的 PictureBox 的两种最简单的方法是:

      -将图像设置为背景图像 或者 - 将其设置为图片框图像,然后将 sizemode 设置为 StretchImage

      1.背景图片

      -使用图片框的BackgroundImage属性

              picturebox.BackgroundImage = Image.FromStream(New IO.MemoryStream(CType(data, Byte())))
      

      -然后将其 BackgroundImageLayout 设置为 stretch 像这样:

              picturebox.BackgroundImageLayout = ImageLayout.Stretch
      
      1. 图片 - 使用 PictureBox 的 Image 属性

        picturebox.Image = Image.FromStream(New IO.MemoryStream(CType(data, Byte())))
        

      -然后将其 sizeMode 设置为 StretchImage 像这样:

          picturebox.SizeMode = PictureBoxSizeMode.StretchImage
      

      这将使任何图片/图像/画布描边(转换为字节数组)适合图片框的高度和宽度

      希望这会有所帮助:)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-05-05
        • 2015-10-16
        • 1970-01-01
        • 1970-01-01
        • 2015-11-13
        • 1970-01-01
        相关资源
        最近更新 更多