[英]Larger Image to fit in picturebox
如您所見,第一張圖片的大小為 (1024*768) 並且正確顯示在圖片框中,在第二種情況下圖片大小為 (1600*900) 並顯示為圖片框的一半剩下的都不見了。所以不,我想在圖片框中保存該圖像,無論大小是多少,即使它大於圖片框的大小。我需要縮放該圖像。那我該怎么做呢?還有一件事是我需要在圖像加載到它時自動調整圖片框的大小,就像我們在燈箱效果中看到的那樣.. http://www.lokeshdhakar.com/projects/lightbox2/ -------- -> 示例。
任何幫助將不勝感激!
這就是我得到的。
如果是 winforms 應用,可以將PictureBoxSizeMode.Zoom
的SizeMode
屬性設置為PictureBox
。 請注意,這將增加較小圖像的大小以填充框架,因此您可能需要先測量圖像,以檢查任一邊緣是否太長,然后將SizeMode
設置為PictureBoxSizeMode.Zoom
或PictureBoxSizeMode.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
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.