2011-08-11 14 views
6

जैसा कि आप पहली छवि (1024 * 768) का आकार देख सकते हैं और यह चित्र बॉक्स में सही ढंग से प्रदर्शित होता है और दूसरे मामले में छवि का आकार (1600 * 900) होता है और यह पिक्चरबॉक्स के आधे हिस्से में प्रदर्शित होता है और शेष गायब है। इसलिए नहीं, मैं उस तस्वीर को चित्र बॉक्स में फ़िर करना चाहूंगा चाहे कोई भी आकार क्या हो और भले ही यह पिक्चरबॉक्स के आकार से बड़ा हो। मुझे इसे स्केल करने की आवश्यकता है छवि.तो मैं यह कैसे कर सकता हूं? और एक और बात यह है कि जब मैं लाइटबॉक्स प्रभाव में देखता हूं तो छवि को लोड होने पर मुझे स्वचालित रूप से चित्र बॉक्स का आकार बदलना होगा .. http://www.lokeshdhakar.com/projects/lightbox2/ --------> उदाहरण ।चित्र बॉक्स में फिट करने के लिए बड़ी छवि

किसी भी मदद की सराहना की जाएगी!

यहां मुझे जो मिल रहा है वह यहां है।

enter image description here

enter image description here

उत्तर

5

यह एक WinForms अनुप्रयोग है, तो आप PictureBoxSizeMode.Zoom को PictureBox की SizeMode गुण सेट कर सकते हैं। ध्यान दें कि फ्रेम को भरने के लिए यह छोटी छवियों के आकार को बढ़ाएगा, ताकि आप पहले छवि को माप सकें, ताकि यह देखने के लिए कि किनारा बहुत लंबा है या नहीं और फिर SizeMode या तो PictureBoxSizeMode.Zoom या PictureBoxSizeMode.Normal पर सेट करना है।

+0

हां मैंने ऐसा किया है और काम किया है, लेकिन मुझे उन्हें अपनी वास्तविक चौड़ाई और ऊंचाई के साथ दिखाने की ज़रूरत है और साथ ही मुझे छवि को स्केल करने की आवश्यकता है ताकि उसे फिट होना चाहिए क्योंकि मैंने एक उदाहरण दिया है जो लिंक के साथ लाइटबॉक्स जैसा दिखता है और मुझे इसे हासिल करने की ज़रूरत है। –

+1

@volety: आपके प्रश्न में आप बताते हैं कि आपको उन्हें स्केल करने की आवश्यकता है। आप एक ही समय में स्केल नहीं कर सकते हैं और उन्हें अपने वास्तविक आकार में नहीं ले सकते हैं। –

+0

मुझे पिक्चरबॉक्स में एक साधारण एनीमेशन चाहिए ताकि इसे छवि के आकार में विस्तारित किया जाए तो मैं यह कैसे कर सकता हूं? –

3

मुझे पता है कि यह चिह्नित किया गया है, लेकिन मैंने इसे अपने अपने ऐप्स में से एक के लिए लिखा है। आशा है कि यह किसी को मदद मिलती है ..

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

को PictureBox का कोई भी आकार एक छवि फिट करने के लिए दो सबसे आसान तरीके है:

करने वाली पृष्ठभूमि छवि के रूप में छवि सेट या - इसे पिक्चरबॉक्स छवि के रूप में सेट करने के लिए फिर Sizemode को StretchImage

1 पर सेट करें।पृष्ठभूमि छवि

PictureBox

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

की BackgroundImage संपत्ति -फिर इस तरह खिंचाव करने के लिए अपने BackgroundImageLayout सेट प्रयोग

:

 picturebox.BackgroundImageLayout = ImageLayout.Stretch 
  1. छवि - छवि संपत्ति ओ च PictureBox

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

-फिर StretchImageकरने के लिए अपने 'sizeMode सेट इस तरह:

picturebox.SizeMode = PictureBoxSizeMode.StretchImage 

यह किसी भी चित्र/छवि/कैनवस स्ट्रोक कर देगा (बाइट सरणी के लिए परिवर्तित) फिट चित्र बॉक्स की ऊंचाई और चौड़ाई के अनुसार

आशा है कि यह मदद करता है :)

संबंधित मुद्दे