رفتن به مطلب

*چک کردن تیره یا روشن بودن رنگ*


Salar82

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

سلام

من تو اکثر برنامه هام از تم های تاریک و روشن و یا دلخواه استفاده میکنم و برای برای این کار، لازمه که بدونم آیا رنگ انتخاب شده، تیره هست یا روشن تا بتونم بر اساس اون رنگ ویوها رو تغییر بدم.

با این کدها، براحتی میتونین چک کنین که آیا رنگ ورودی، تیره هست یا نه.

Private Sub isColorDark(color As Int) As Boolean
	Dim darkness As Int = 1 - (0.299 * GetARGB(color)(1) + 0.587 * GetARGB(color)(2) + 0.114 * GetARGB(color)(3))/255
	If darkness <= 0.5 Then
		Return    False 'It's a light color
	Else
		Return    True 'It's a dark color
	End If
End Sub

Sub GetARGB(Color As Int) As Int()
	Dim res(4) As Int
	res(0) = Bit.UnsignedShiftRight(Bit.And(Color, 0xff000000), 24)
	res(1) = Bit.UnsignedShiftRight(Bit.And(Color, 0xff0000), 16)
	res(2) = Bit.UnsignedShiftRight(Bit.And(Color, 0xff00), 8)
	res(3) = Bit.And(Color, 0xff)
	Return res
End Sub

این دو ساب رو به اکتیویتی اضاف کنید و برای چک کردن، فقط از ساب اول استفاده کنید:

Log(isColorDark(0xFF891D1D)) 'Return True if 0xFF891D1D is dark

 

موفق باشید

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

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

بایگانی شده

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

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

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