رفتن به مطلب

گرد کردن عکس [B4X]


Salar82

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

سلام به همه

همونطور که از عنوان پیداست، با کد زیر میتونید عکس ها رو گرد کنید. کتابخونه های بسیار زیادی برای اینکار رپ شده که تو همین انجمن هم موجود هست. اما چون کد زیر، در B4A و هم در B4J و هم در B4i قابل استفاده هست، اینجا میذارمش.(بهمین خاطر عنوان تاپیک رو گذاشتم B4X) :) 

نتیجه میشه یه چیزی مثل این:

SS-2017-10-17_12.59.56.png

 

کد:

'xui is a global XUI variable.
Sub CreateRoundBitmap (Input As B4XBitmap, Size As Int) As B4XBitmap
   If Input.Width <> Input.Height Then
       'if the image is not square then we crop it to be a square.
       Dim l As Int = Min(Input.Width, Input.Height)
       Input = Input.Crop(Input.Width / 2 - l / 2, Input.Height / 2 - l / 2, l, l)
   End If
   Dim c As B4XCanvas
   Dim xview As B4XView = xui.CreatePanel("")
   xview.SetLayoutAnimated(0, 0, 0, Size, Size)
   c.Initialize(xview)
   Dim path As B4XPath
   path.InitializeOval(c.TargetRect)
   c.ClipPath(path)
   c.DrawBitmap(Input.Resize(Size, Size, False), c.TargetRect)
   c.RemoveClip
   c.DrawCircle(c.TargetRect.CenterX, c.TargetRect.CenterY, c.TargetRect.Width / 2 - 2dip, xui.Color_White, False, 5dip) 'comment this line to remove the border
   c.Invalidate
   Dim res As B4XBitmap = c.CreateBitmap
   c.Release
   Return res
End Sub

 

نحوه استفادش هم به این صورته که اول ساب بالا رو به اکتیویتی اضاف میکنید و هرجا که خواستین، کدهای زیر رو مینویسید:

Dim xui As XUI
Dim ImageView1 As B4XView

Dim img As B4XBitmap = xui.LoadBitmap(File.DirAssets, "myimage.jpg")
ImageView1.SetBitmap(CreateRoundBitmap(img, ImageView1.Width))

 

اگر نمیخواین که ImageView1 از نوع B4XView باشه، از کد زیر استفاده کنید:

Dim xui As XUI
Dim ImageView1 As ImageView
Dim img As B4XBitmap = xui.LoadBitmap(File.DirAssets, "myimage.jpg")

Dim xIV As B4XView = ImageView1
xIV.SetBitmap(CreateRoundBitmap(img, xIV .Width))

 

برای استفاده باید کتابخونه XUI رو فعال کنید و یه متغیر از اون رو به اسم xui در Globals تعریف کنید.

موفق باشید

:53::53::53::53::53:

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

بایگانی شده

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

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

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