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

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


driliya

سوال

سلام دوستان

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

 

102201-2015-12-26-18-55-13-945.png

Sub PanelCapture(pnl As Panel, img1 As ImageView)
Dim Obj1, Obj2 As Reflector

Dim c As Canvas
Dim q As Bitmap
If File.ExternalWritable = True Then
Obj1.Target = Obj1.GetActivityBA
Obj1.Target = Obj1.GetField("vg")
q.InitializeMutable(pnl.left + pnl.Width, pnl.Top + pnl.Height)
c.Initialize2(q)
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 Canvas1 As Canvas
Canvas1.Initialize(img1)
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,img1.Width, img1.Height)
Canvas1.DrawBitmap(q, scrt , rectPanel1)
img1.Invalidate
End If
End Sub
لینک ارسال
به اشتراک گذاری در سایت های دیگر

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

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

این چه موضوع تاپیکیه آخه :S

 

ویرایش شد :S

 

این کدو هم امتحان کنید اگه بازم ارور داد بقیه کداتونم بذارید :

Sub screenshot

'if file exist the delete first
If File.Exists(File.DirInternal, "small.png") = True Then
File.Delete(File.DirInternal, "small.png")
End If

Dim Obj1, Obj2 As Reflector
Dim bmp As Bitmap
Dim c As Canvas
Obj1.Target = Obj1.GetActivityBA
Obj1.Target = Obj1.GetField("vg")
bmp.InitializeMutable(Panel1.left + Panel1.Width, Panel1.Top + 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.DirInternal, "small.png", False)
bmp.WriteToStream(Out, 50, "PNG")
Out.Close

'draw from image to canvas
Dim canvas1 As Canvas
canvas1.Initialize(cardb2)
Dim scrt As Rect
scrt.Initialize(panel1.left, panel1.top, panel1.left + panel1.Width, panel1.Top + panel1.Height)
Dim rectPanel1 As Rect
rectPanel1.Initialize(0, 0,cardb2.Width, cardb2.Height)
canvas1.DrawBitmap(LoadBitmap(File.DirInternal, "small.png"), scrt , rectPanel1)
cardb2.Invalidate

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

حل نشد اقا یه نگاه به کل کد ها بندازید




Sub Process_Globals
Dim SourceImageRect, TouchImageViewRect As Rect
Dim cc As ContentChooser
End Sub

Sub Globals
	Private HorizontalScrollView1 As HorizontalScrollView
	Private imgasly As ImageView
	Private Button1 As Button
	Private Button2 As Button
	Dim TouchImageView1 As TouchImageView
	Private pnlasly As Panel
    Dim int1 As Int  
	Private EditText1 As EditText
	Private ImageView1 As ImageView
	Private Panel1 As Panel
	Private Button6 As Button
	
End Sub

Sub Activity_Create(FirstTime As Boolean)
	
	Activity.LoadLayout("frmasly")
	
	

	Dim p As PhoneWakeState
    p.KeepAlive(True)
	
	File.MakeDir(File.DirRootExternal,"fenjan/bartar")
	
	
	Dim left As Int = 3dip
	For i = 1 To 28
		Dim bit1 As Bitmap
		bit1.Initialize(File.DirAssets,"frm"&i&".png")
		Dim img As ImageView
		img.Initialize("imgclick")
		img.Tag="frm"&i&".png"
		img.Bitmap = bit1 
		img.Gravity=Gravity.FILL
		HorizontalScrollView1.Panel.AddView(img,left,0,74dip,100dip)
		left = left+77dip
	Next	
	HorizontalScrollView1.Panel.Width = left

	
	TouchImageView1.Initialize("TouchImageView1")
	pnlasly.AddView(TouchImageView1, 0%x, 0%y, 86%x, 79%y)
	TouchImageView1.MinScale=0.25		
	TouchImageView1.MaxScale=2				
	TouchImageView1.TranslatePadding=128dip		
	TouchImageView1.Gravity=Gravity.FILL
	TouchImageView1.Visible=False
'	imgasly.Visible=False
	ImageView1.Visible=False
	Panel1.Visible=False
    imgasly.SetBackgroundImage(LoadBitmap(File.DirAssets,"rahnama.png"))
	
	    Dim verticalPosition As String = "bottom" '"top" or "bottom"
    Dim horizontalPosition As String = "center" '"left", "right" or "center"
    Dim r As Reflector 
    Dim args(3) As Object = Array As Object(r.GetActivity, verticalPosition, horizontalPosition)
    Dim types(3) As String = Array As String("android.app.Activity", "java.lang.String", "java.lang.String")    
    r.RunStaticMethod("ir.adad.AdadB4APlugin", "createAdView", args, types)
	
End Sub


'Sub setimage(vi As View)
'	
'	For j=0 To 100000
'		If vi.Width+vi.Left > Activity.Width-100dip OR vi.Height+vi.Top > Activity.Height -100dip Then
'			vi.Width=vi.Width/1.01
'			vi.Height=vi.Height/1.01
'		Else
'			Exit
'		End If	
'	Next
'	vi.Left=(100dip)-(vi.Width/2)
'	vi.Top=(100dip)-(vi.Height/2)
'	
'End Sub


Sub Activity_Resume

End Sub

Sub Activity_Pause (UserClosed As Boolean)
End Sub

Sub imgclick_click

	Dim img2 As ImageView
	img2 = Sender
	Log(img2.Tag)
	imgasly.Bitmap = img2.Bitmap
	imgasly.Visible=True
End Sub

Sub Button2_Click
		cc.Initialize("chooser")
	cc.show("image/*","choose image")
End Sub

Sub cam_PictureTaken(fileSaved As Boolean)
	If fileSaved=True Then
		ToastMessageShow("تصویر با موفقیت گرفته شد",False)
		Dim Bitmap1 As Bitmap
        Bitmap1.Initialize(File.DirRootExternal,"ns.jpg")
		TouchImageView1.setBitmap(Bitmap1)
		SourceImageRect.Initialize(0, 0, Bitmap1.Width, Bitmap1.Height)
		TouchImageViewRect.Initialize(0, 0, TouchImageView1.Width, TouchImageView1.Height)
		TouchImageView1.ScaleSrcRectToDestRect(SourceImageRect, TouchImageViewRect, "CENTER")
		TouchImageView1.Visible=True
	
	Else
		ToastMessageShow("در هنگام گرفتن عکس مشکلی پیش آمده است",False)
	End If
End Sub
Sub Button1_Click
	Dim cam As EZcamera
	cam.Initialize("cam")
	cam.TakePicture(File.DirRootExternal,"ns.jpg")
End Sub

Sub chooser_result(Success As Boolean,dir As String,filename As String)
	If Success=True Then
		ToastMessageShow("با موفقیت انتخاب شد",False)
		Dim Bitmap1 As Bitmap
        Bitmap1.Initialize(dir,filename)
	    TouchImageView1.SetBitmap(Bitmap1)
		TouchImageView1.SetBitmap(Bitmap1)
		SourceImageRect.Initialize(0, 0, Bitmap1.Width, Bitmap1.Height)
		TouchImageViewRect.Initialize(0, 0, TouchImageView1.Width, TouchImageView1.Height)
		TouchImageView1.ScaleSrcRectToDestRect(SourceImageRect, TouchImageViewRect, "CENTER")
		TouchImageView1.Visible=True
	Else
		ToastMessageShow("چیزی انتخاب نشده",False)
	End If
End Sub

Sub setRotation(v As View, Angle As Float)
    Dim jo = v As JavaObject
    jo.RunMethod("setRotation", Array As Object(Angle))
End Sub

Sub Button7_Click
If TouchImageView1.Visible=False Then 
   ToastMessageShow("ابتدا تصویر را وارد کنید",True)
 Else
    setRotation(TouchImageView1,-90)
End If
End Sub
Sub Button8_Click
If TouchImageView1.Visible=False Then 
   ToastMessageShow("ابتدا تصویر را وارد کنید",True)
 Else
	setRotation(TouchImageView1,90)
End If
End Sub
Sub Button9_Click
If TouchImageView1.Visible=False Then 
   ToastMessageShow("ابتدا تصویر را وارد کنید",True)
 Else
	setRotation(TouchImageView1,-180)
End If
End Sub
Sub Button10_Click
If TouchImageView1.Visible=False Then 
   ToastMessageShow("ابتدا تصویر را وارد کنید",True)
 Else
	setRotation(TouchImageView1,0)
End If
End Sub
Sub Button11_Click
If TouchImageView1.Visible=False Then 
   ToastMessageShow("ابتدا تصویر را وارد کنید",True)
 Else
int1 = int1+1
	setRotation(TouchImageView1,int1)
End If
End Sub
Sub Button12_Click
If TouchImageView1.Visible=False Then 
   ToastMessageShow("ابتدا تصویر را وارد کنید",True)
 Else
int1 = int1-1
	setRotation(TouchImageView1,int1)
End If
End Sub

Sub PanelCapture(pnl As Panel, img1 As ImageView)
'if file exist the delete first
If File.Exists(File.DirInternal, "small.png") = True Then
File.Delete(File.DirInternal, "small.png")
End If

Dim Obj1, Obj2 As Reflector
Dim bmp As Bitmap
Dim c As Canvas
Obj1.Target = Obj1.GetActivityBA
Obj1.Target = Obj1.GetField("vg")
bmp.InitializeMutable(Panel1.left + Panel1.Width, Panel1.Top + 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.DirInternal, "small.png", False)
bmp.WriteToStream(Out, 50, "PNG")
Out.Close

'draw from image to canvas
Dim canvas1 As Canvas
canvas1.Initialize(img1)
Dim scrt As Rect
scrt.Initialize(Panel1.left, Panel1.top, Panel1.left + Panel1.Width, Panel1.Top + Panel1.Height)
Dim rectPanel1 As Rect
rectPanel1.Initialize(0, 0,img1.Width, img1.Height)
canvas1.DrawBitmap(LoadBitmap(File.DirInternal, "small.png"), scrt , rectPanel1)
img1.Invalidate

End Sub

Sub Button4_Click
If TouchImageView1.Visible=False Then 
   ToastMessageShow("ابتدا تصویر را وارد کنید",True)
 Else
PanelCapture(pnlasly,ImageView1)
ImageView1.Visible=True
ToastMessageShow("تصویر با موفقیت ایجاد شد",True)
ToastMessageShow("برای ذخیره کردن نامی وارد کنید",True)
Panel1.Visible=True
End If
End Sub

Sub Button3_Click
	If ImageView1.Visible=False Then
ToastMessageShow("ابتدا عکس را ایجاد و سپس دکمه ذخیره را بزنید",True)
Else
Dim out As OutputStream
out=File.OpenOutput(File.DirRootExternal&"/fenjan/mahak",EditText1.Text&".Png",True)
Dim Ax As Bitmap
Ax=ImageView1.Bitmap
Ax.WriteToStream(out,100,"PNG")
out.Close
ToastMessageShow("تصویر با موفقیت ایجاد شد",True)
End If
Panel1.Visible=False	
End Sub






Sub Activity_KeyPress (KeyCode As Int) As Boolean


	Dim market As Intent, uri As String
    uri="bazaar://details?id=ir.ghabfenjani.mahak"
    market.Initialize(market.ACTION_EDIT,uri)
    StartActivity(market)
	ExitApplication
    



End Sub
Sub Button6_Click

	Activity.Finish()
'	
End Sub


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

دوست عزیز کل کدای پروژتو گذاشتی که 

 

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

 

بفرمایید میخواید چیکار کنید تا بنده راهنمایی کنم

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

بایگانی شده

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

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

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