簡體   English   中英

更大的圖像以適合圖片框

[英]Larger Image to fit in picturebox

如您所見,第一張圖片的大小為 (1024*768) 並且正確顯示在圖片框中,在第二種情況下圖片大小為 (1600*900) 並顯示為圖片框的一半剩下的都不見了。所以不,我想在圖片框中保存該圖像,無論大小是多少,即使它大於圖片框的大小。我需要縮放該圖像。那我該怎么做呢?還有一件事是我需要在圖像加載到它時自動調整圖片框的大小,就像我們在燈箱效果中看到的那樣.. http://www.lokeshdhakar.com/projects/lightbox2/ -------- -> 示例。

任何幫助將不勝感激!

這就是我得到的。

在此處輸入圖像描述

在此處輸入圖像描述

如果是 winforms 應用,可以將PictureBoxSizeMode.ZoomSizeMode屬性設置為PictureBox 請注意,這將增加較小圖像的大小以填充框架,因此您可能需要先測量圖像,以檢查任一邊緣是否太長,然后將SizeMode設置為PictureBoxSizeMode.ZoomPictureBoxSizeMode.Normal

我知道這已標記為已回答,但我是為自己的一個應用程序編寫的。 希望它可以幫助某人..

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

結束子

將圖像適合任意大小的 PictureBox 的兩種最簡單的方法是:

- 將圖像設置為背景圖像或 - 將其設置為圖片框圖像,然后將 sizemode 設置為 StretchImage

1.背景圖片

- 使用 PictureBox 的BackgroundImage屬性

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

- 然后將其 BackgroundImageLayout 設置為像這樣拉伸

        picturebox.BackgroundImageLayout = ImageLayout.Stretch
  1. Image - 使用 PictureBox 的Image屬性

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

- 然后將其 sizeMode 設置為StretchImage 如下所示

    picturebox.SizeMode = PictureBoxSizeMode.StretchImage

這將使任何圖片/圖像/Canvas Stroke(轉換為字節數組)適合圖片框的高度和寬度

希望這可以幫助:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM