رفتن به مطلب
  • 0

کد عکس گرفتن از پنل


afraz aa

سوال

سلام

 

دوستان میخوام بهم یه کدی بدید که باهاش بشه از پنل عکس گرفت

 

ممنون میشم کمک کنید

لینک ارسال
به اشتراک گذاری در سایت های دیگر

5 پاسخ به این سوال تاکنون داده شده است

ارسال‌های توصیه شده

شما با این یه تست بکنید.

Dim Obj1, Obj2 As Reflector
Dim bmp As Bitmap
Dim c As Canvas
Dim now, i As Long
Dim dt As String
DateTime.DateFormat = "yyMMddHHmmss"
now = DateTime.now
dt = DateTime.Date(now) ' e.g.: "110812150355" is Aug.12, 2011, 3:03:55 p.m.
Obj1.Target = Obj1.GetActivityBA
Obj1.Target = Obj1.GetField("vg")
bmp.InitializeMutable(panel1.Width, panel1.Height)
c.Initialize2(bmp)
Dim args(1) As Object
Dim types(1) As String
Obj2.Target = c
Obj2.Target = Obj2.GetField("canvas")
args(0) = Obj2.Target
types(0) = "android.graphics.Canvas"
Obj1.RunMethod4("draw", args, types)
Dim Out As OutputStream
Out = File.OpenOutput(File.DirRootExternal, dt & ".png", False)
bmp.WriteToStream(Out, 100, "PNG")
Out.Close
لینک ارسال
به اشتراک گذاری در سایت های دیگر

 

شما با این یه تست بکنید.

Dim Obj1, Obj2 As Reflector
Dim bmp As Bitmap
Dim c As Canvas
Dim now, i As Long
Dim dt As String
DateTime.DateFormat = "yyMMddHHmmss"
now = DateTime.now
dt = DateTime.Date(now) ' e.g.: "110812150355" is Aug.12, 2011, 3:03:55 p.m.
Obj1.Target = Obj1.GetActivityBA
Obj1.Target = Obj1.GetField("vg")
bmp.InitializeMutable(panel1.Width, panel1.Height)
c.Initialize2(bmp)
Dim args(1) As Object
Dim types(1) As String
Obj2.Target = c
Obj2.Target = Obj2.GetField("canvas")
args(0) = Obj2.Target
types(0) = "android.graphics.Canvas"
Obj1.RunMethod4("draw", args, types)
Dim Out As OutputStream
Out = File.OpenOutput(File.DirRootExternal, dt & ".png", False)
bmp.WriteToStream(Out, 100, "PNG")
Out.Close

 

سلام و تشکر

 

استاد با این کد مشکل حل شد

دیگه به این کد نیازی نیست دیگه آره


Sub PanelCapture(pnl As Panel, Img2 As ImageView)

Dim Obj1, Obj2 As Reflector
Dim bmp As Bitmap
Dim c As Canvas
Obj1.Target = Obj1.GetActivityBA
Obj1.Target = Obj1.GetField("vg")
bmp.InitializeMutable(pnl.left + pnl.Width, pnl.Top + pnl.Height)
c.Initialize2(bmp)
Dim args(1) As Object
Dim types(1) As String
Obj2.Target = c
Obj2.Target = Obj2.GetField("canvas")
args(0) = Obj2.Target
types(0) = "android.graphics.Canvas"
Obj1.RunMethod4("draw", args, types)

'draw from image to canavas
Dim canvas1 As Canvas
canvas1.Initialize(Img2)
Dim scrt As Rect
scrt.Initialize(pnl.left, pnl.top, pnl.left + pnl.Width, pnl.Top + pnl.Height)
Dim rectPanel1 As Rect
rectPanel1.Initialize(0, 0,Img2.Width, Img2.Height)
canvas1.DrawBitmap(bmp, scrt , rectPanel1)
Img2.Invalidate

End Sub

در کل ممنون آقا هرکی همچین مشکلی داشت کد آقای نیکروان کار کرد بدون مشکل

 

ممنون استاد

لینک ارسال
به اشتراک گذاری در سایت های دیگر

دقیقا همین کلمه "عکس گرفتن از پنل" رو سرچ کنید تو سایت ، کدش هست. :gol:

لینک ارسال
به اشتراک گذاری در سایت های دیگر

ممنون استاد نیکروان

ولی من با استفاده از این کد میام عکس میگیرم و ذخیره هم میشه تنها مشکلم اینکه که با هر بار سیو عکس اون ایمج ویویی که تو پنل دادم میره عقب (یعنی تو پنل کوچیک تر میشه)

حالا مثلا اگه من بیام یه 5بار از پنل عکس بگیرم ایمج ویو خیلی کوچیک میشه

مشکلش از کجاست

لینک ارسال
به اشتراک گذاری در سایت های دیگر

ببینید با کد بگم میبخشیدا

 

این همون ساب عکس گرفتن از پنل هست

Sub PanelCapture(pnl As Panel, Img2 As ImageView)
Dim Obj1, Obj2 As Reflector
Dim bmp As Bitmap
Dim c As Canvas
Obj1.Target = Obj1.GetActivityBA
Obj1.Target = Obj1.GetField("vg")
bmp.InitializeMutable(pnl.left + pnl.Width, pnl.Top + pnl.Height)
c.Initialize2(bmp)
Dim args(1) As Object
Dim types(1) As String
Obj2.Target = c
Obj2.Target = Obj2.GetField("canvas")
args(0) = Obj2.Target
types(0) = "android.graphics.Canvas"
Obj1.RunMethod4("draw", args, types)

'draw from image to canavas
Dim canvas1 As Canvas
canvas1.Initialize(Img2)
Dim scrt As Rect
scrt.Initialize(pnl.left, pnl.top, pnl.left + pnl.Width, pnl.Top + pnl.Height)
Dim rectPanel1 As Rect
rectPanel1.Initialize(0, 0,Img2.Width, Img2.Height)
canvas1.DrawBitmap(bmp, scrt , rectPanel1)
Img2.Invalidate
End Sub

اینم کدی که با توی یه دکمه قرار دادم و با فشار دادنش میاد عکس از پنل میگیره

Sub Button6_Click

PanelCapture(Panel1,ImageView1)
	
Dim h As String=Rnd(0,1000)
tasver.writeBitmapToFile(ImageView1.Bitmap,File.DirRootExternal,"image"&h&".png",1)	
ToastMessageShow("image"&h&".png",True)	
	
End Sub

ولی گفتم دیگه مشکل داره با هر بار عکس انداختن ایمج ویو تو پنل کوچیک تر میشه

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...