میخوام یک برنامه بنویسم که اگه طول و عرض عکس از طول و عرض فرم بیشتر شد اون رو
اندازه فرم در بیاره طوری که عکس کش نیاد
ممنونم اگه کمک کنید.:10:
Printable View
میخوام یک برنامه بنویسم که اگه طول و عرض عکس از طول و عرض فرم بیشتر شد اون رو
اندازه فرم در بیاره طوری که عکس کش نیاد
ممنونم اگه کمک کنید.:10:
می تونی از Image استفاده کنی فقط اگه بخوای عکس اندازه قالب ایمج باشه باید خاصیت Stretch=true کنی
اون که قضیه اش حله من خاصیت Strech رو میدونم
من میخام که اگه عکس بزرگتر از فرمم شد اندازه فرم بشه وعکس کِش هم نیاد.
مثلا طول عکس من 1000 و عرضش 500 است و طول وعرض فرم هم 700 است
میخام کاری کنم که عکس اندازه فرمم بشه و از عرض کش نیاد چون هرکاری کردم نشد.
ممنون:10:
کد زیر رو ببین:
فقط یه ایراد داره اونم اینه که به جای طول و عرض واقعقی جایی که Image رو فرم هست چند Twip بیشتر حساب مب کنه چون نوار عنوان و بازوهای کناری فرم هم حساب می شه. اونو حساب کن از طول و عرض فرم کم کنکد:Dim ratio, pich, picw As Double
Private Sub Form_Load()
Image1.Picture = LoadPicture("c:\a.bmp")
pich = Image1.Height
picw = Image1.Width
If pich > picw Then
ratio = picw / pich
Image1.Height = Form1.Height
Image1.Width = Image1.Height * ratio
Else
ratio = pich / picw
Image1.Width = Form1.Width
Image1.Height = Image1.Width * ratio
End If
Image1.Stretch = True
End Sub
Private Sub Form_Resize()
If pich > picw Then
ratio = picw / pich
Image1.Height = Form1.Height
Image1.Width = Image1.Height * ratio
If Image1.Width > Form1.Width Then
Image1.Width = Form1.Width
Image1.Height = Image1.Width / ratio
End If
Else
ratio = pich / picw
Image1.Width = Form1.Width
Image1.Height = Image1.Width * ratio
If Image1.Height > Form1.Height Then
Image1.Height = Form1.Height
Image1.Width = Image1.Height / ratio
End If
End If
Form1.Caption = Form1.Height & " " & Form1.Width & " " & Image1.Height & " " & Image1.Width
End Sub
دستت درد نکه
خیلی کمکم کرد.
من اون کد رو با کمک معادله ی خط اصلاح کردم. هم کوتاه تر شده هم سریع تر. مشکل ارتفاع Title رو هم با یه ثابت حل کردم. یه مشکل کوچیک مونده که در اندازه های خیلی کوچیک فرم طول و عرض تصویر به هم می ریزه.
Ratio رو اندفعه توTitle نشون دادم. می شه حلش کرد. به عهده ی خودت.
کد:Dim ratio, pich, picw As Double
Const th = 700
Private Sub Form_Load()
Image1.Picture = LoadPicture("c:\a.bmp")
pich = Image1.Height
picw = Image1.Width
Image1.Stretch = True
End Sub
Private Sub Form_Resize()
If Form1.Width < ((picw * (Form1.Height - th)) / pich) Then
Image1.Width = Form1.Width - th
Image1.Height = (pich * Form1.Width) / picw
Else
Image1.Width = (picw * (Form1.Height - th)) / pich
Image1.Height = Form1.Height - th
End If
Form1.Caption = Image1.Width / Image1.Height
'Form1.Caption = Form1.Height & " " & Form1.Width & " " & Image1.Height & " " & Image1.Width
End Sub