PDA

View Full Version : زوم در picturebox



miassus10
دوشنبه 26 فروردین 1387, 00:38 صبح
سلام دوستان ،
میشه منو راهنمایی کنید که چگونه و با چه کدی میتونم روی عکس درون picturebox زوم کنم و با چه کدی این کار میسره؟
یعنی بر فرض عکس را دوبرابر یا بیشتر کنم؟
ممنونم.

yavari
دوشنبه 26 فروردین 1387, 12:52 عصر
سلام دوستان ،
میشه منو راهنمایی کنید که چگونه و با چه کدی میتونم روی عکس درون picturebox زوم کنم و با چه کدی این کار میسره؟
یعنی بر فرض عکس را دوبرابر یا بیشتر کنم؟
ممنونم.

سلام

منم نیاز به همچین کاری داشتم اما متاسفانه Picturebox جوابگو نبود
میتونی از ImageControl استفاده کنی
این طریقه نوشتنش:

Private frst As Double = 1
******************

Try
ImageControl1.ZoomFactor = 1.25 + frst
ImageControl1.ZoomOnMouseWheel = True
ImageControl1.ZoomIn()
If frst <> 2.5 Then frst += 1.25
Catch ex As Exception
ImageControl1.ZoomFactor = 1.2
End Try

اینم کامپوننتش:

موفق باشید

VBExpress
دوشنبه 26 فروردین 1387, 15:12 عصر
سلام


عکس درون picturebox زوم کنم

میتونی از ImageControl استفاده کنی
بهترین کار اینه که خودت یه کنترل جدید درست کنی ... کاری هم نداره


Imports System.drawing
Imports System.drawing.drawing2D
Imports System.windows.forms
PublicClass Class1
Inherits ScrollableControl
Private _zoom AsDouble = 1
Property zoom() AsDouble
Get
Return _zoom
EndGet
Set(ByVal value AsDouble)
_zoom = value
Scrollbars()
Invalidate()
EndSet
EndProperty
PublicSubNew()
Me.SetStyle(ControlStyles.UserPaint Or _
ControlStyles.AllPaintingInWmPaint Or _
ControlStyles.ResizeRedraw Or _
ControlStyles.OptimizedDoubleBuffer, True)
Scrollbars()
Invalidate()
EndSub
PrivateSub Scrollbars()
Me.AutoScrollMinSize = New Size _
(CInt(Me._image.Width * _zoom + 0.5), CInt(Me._image.Height * _zoom + 0.5))
EndSub
Private _image As Image = Image.FromFile("C:\VBExpress.bmp")
ProtectedOverridesSub OnPaint(ByVal e As PaintEventArgs)
Dim Mx AsNew Matrix(_zoom, 0, 0, _zoom, 0, 0)
Dim g As Graphics = e.Graphics
Dim Rec AsNew Rectangle(0, 0, _image.Width, _image.Height)
Mx.Translate(Me.AutoScrollPosition.X / _zoom, _
Me.AutoScrollPosition.Y / _zoom)
g.Transform = Mx
g.DrawImage(_image, Rec, Rec, GraphicsUnit.Pixel)
MyBase.OnPaint(e)
EndSub
EndClass


البته اینی که این بالا نوشتم مثال ساده ای هست باید خودت به دلخواه و نیازت توسعه اش بدی ...