رفتن به مطلب

برش عکس به تعداد دلخواه


مجید آرتا

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

با سلام

امیدوارم حالتون خوب و خوش باشه

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

بعد از مدت هاس دارم کد می نویسم :DD: شوق و ذوق دارم :gamer2:

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

پازل مازل راحت میشه با این برنامه ساخت، یه دونه قابلیت دراگ بزارید برای ایمیج ویو ها و یکم کار کنید یه پازل خوشگل میشه ساخت.

این تصویر رو ببینید   ( عکس رفیقمه استفاده نا متعارف نشه یه وقت ) :DD:»

croping.gif

 

خب بریم سر اصل مطلب، خیلی عادت دارم توضیح بدم :دی

این سورس کد فقط یه دونه تابع داره که یکم توضیح میدم راجبش »

private Sub SpliteImage(image As ImageView,row As Int, col As Int) As List
	 Private rows, cols As Int
	 Private FinalBitmap As Bitmap
	 Private SmalImageHeigh, SmalImageWidth As Int
	 Private Bitmaps As List
	 Bitmaps.Initialize
	 Private BD As BitmapDrawable
	 Private BE As BitmapExtended 
	 BE.Initialize("")
	 Private ScaledBitmap As Bitmap
	 Private bitmap As Bitmap
	 BD.Initialize(image.Bitmap)
	 bitmap = BD.Bitmap
	 ScaledBitmap = BE.createScaledBitmap(bitmap,bitmap.Width,bitmap.Height,True)
	 rows = row
	 cols = col
	 SmalImageHeigh = bitmap.Height / rows
	 SmalImageWidth = bitmap.Width / cols
	 
	 Private YCo = 0 As Int 
	 For i = 0 To rows - 1
	 	Private XCo = 0 As Int
		For j = 0 To cols - 1
				FinalBitmap = BE.createBitmap3(ScaledBitmap,XCo,YCo,SmalImageWidth,SmalImageHeigh)
				Bitmaps.Add(FinalBitmap)
			XCo = XCo + SmalImageWidth
		Next
		YCo = YCo + SmalImageHeigh
	Next
	Return Bitmaps
End Sub

3 تا ورودی داره، ورودی اول ImageView، ورودی دوم ردیف، ورودی سوم ستون، مثلا من 6 تا عکس دارم، میگم 2 تا ردیف و 3 تا ستون، یا برعکس 3 تا ستون و 2 تا ردیف.

اینحوری واس شما میاد عکس رو به 6 تیکه تبدیل میکنه، حاصل ضرب سطر و ستون میشه تعداد عکس های مورد نیاز شما.

نخواستم زیاد اذیت بشید و فقط مثلا بگید 6 تا عکس، خودش واستون 6 تا عکس رو برش بده، ولی خب یکم اذیتم کرد گفتم کار خودمو راحت کنم، دمه امتحانات وقت کمه :DD:.

خب چیز خاصی نداره یه 3 4 تا Bitmap  تعریف کردیم و یه مختصات x  و  y  گرفتیم و برش دادیم.

 

نحوه استفاده هم توی سورس کد هستش، ولی خب یه مثال ساده میزنم، در ضمن خروجیش از نوع لیست هستش چون قرار هستش چندین عکس رو بعد از برش بگیریم و توی لیست میریزیمش.

Dim imgMain As ImageView1
imgMain.Initialize("")
imgMain.SetBackgroundImage()LoadBitmap(File.DirAssets,"1.Png"))
Dim imgList As List = SpliteImage(imgMain,2,2)
ImageView1.Bitmap = imgList.Get(0)
ImageView2.Bitmap = imgList.Get(1)
ImageView3.Bitmap = imgList.Get(2)
ImageView4.Bitmap = imgList.Get(3)

خب دیگه همین.

این تابع رو هم میتونید اگه حس و حالش رو داشتید یکم تر و تمیز تر بنویسیدش و یه کتابخونه باهاش بسازید و قابل Reuse  تر باشه.

سورس کد اختصاصی از انسر سنتر

کپی برداری بدون ذکر منبع حرامن در حرامه :DD:

حداقل اسم انجمنو بگیرید نامردا :DD:

تا درودی دیگر بدرود

 

رمز فایل : answercenter.ir

Image Croping.rar

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

بایگانی شده

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

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

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