2011-08-11 44 views
6

Như bạn có thể thấy hình ảnh đầu tiên có kích thước (1024 * 768) và được hiển thị chính xác trong hình và trong trường hợp thứ hai, kích thước hình ảnh là (1600 * 900) và nó được hiển thị cho một nửa số hình ảnh và phần còn lại bị thiếu. Vì vậy, tôi không muốn tô hình ảnh đó trong hình ảnh bất kể kích thước là gì và mặc dù nó lớn hơn kích thước của hình ảnh. Tôi cần phải mở rộng Và một điều nữa là tôi cần phải tự động thay đổi kích thước hình ảnh khi hình ảnh tải vào nó giống như chúng ta thấy trong hiệu ứng lightbox .. http://www.lokeshdhakar.com/projects/lightbox2/ --------> ví dụ .Ảnh lớn hơn để vừa với picturebox

Mọi trợ giúp sẽ được đánh giá cao!

Đây là những gì tôi đang nhận được.

enter image description here

enter image description here

Trả lời

5

Nếu đó là một ứng dụng winforms, bạn có thể thiết lập các SizeMode tài sản của PictureBox để PictureBoxSizeMode.Zoom. Lưu ý rằng điều này sẽ làm tăng kích thước của hình ảnh nhỏ hơn để lấp đầy khung hình, vì vậy bạn có thể muốn đo hình ảnh đầu tiên, để kiểm tra xem một trong hai cạnh có quá dài hay không và sau đó đặt SizeMode thành PictureBoxSizeMode.Zoom hoặc PictureBoxSizeMode.Normal.

+0

Có, tôi đã làm điều đó và đã làm việc nhưng tôi cần hiển thị chúng với chiều rộng và chiều cao thực tế của nó và đồng thời tôi cần phải chia tỷ lệ hình ảnh sao cho nó vừa với nó như tôi đã đưa ra một ví dụ giống như lightbox với một liên kết và tôi cần đạt được điều đó. –

+1

@volety: trong câu hỏi của bạn, bạn nói rằng bạn cần phải mở rộng chúng. Bạn không thể mở rộng quy mô và có chúng ở kích thước thực của chúng cùng một lúc. –

+0

Tôi cần một hình động đơn giản cho hình tượng để nó có thể mở rộng đến kích thước của Hình ảnh, vậy làm thế nào để tôi làm điều đó? –

3

Tôi biết điều này được đánh dấu là đã trả lời, nhưng tôi đã viết điều này cho một trong các ứng dụng của riêng tôi. Hy vọng nó sẽ giúp ai đó ..

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 

End Sub

0

Hai cách dễ nhất để phù hợp với một hình ảnh để Bất kỳ Kích thước của PictureBox là:

-để thiết lập hình ảnh làm hình ảnh nền HOẶC - để đặt nó làm hình ảnh picturebox, sau đó đặt sizemode thành StretchImage

1.Background Image

-sử dụng BackgroundImage tài sản của PictureBox

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

-Sau Đặt BackgroundImageLayout của nó để căng Giống như này:

 picturebox.BackgroundImageLayout = ImageLayout.Stretch 
  1. Hình ảnh -sử dụng Hình ảnh thuộc tính o f PictureBox

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

-Sau Set sizeMode của nó để StretchImage Giống như này:

picturebox.SizeMode = PictureBoxSizeMode.StretchImage 

này sẽ thực hiện bất kỳ Stroke Hình ảnh/hình ảnh/Canvas (chuyển đổi sang Byte Array) phù hợp theo chiều cao và chiều rộng của picturebox

Hy vọng điều này sẽ giúp :)

Các vấn đề liên quan