Что нового

Colors.au3 (CheckPixel, TrimColor, GetSimpleColor)

Автор
L

Lexx98

Продвинутый
Сообщения
272
Репутация
73
Re: Colors.au3 (CheckPixel и TrimColor)

Ну значит ты сам себе злой буратино. Чёткая чёрная тема упрощает множество вещей боту. В том числе применение у себя наработок других игроков, использующих ту же цветовую схему. А она у большинства чёрная.
Однако, если она не чёрная, но и не слишком яркая, то моему изначальному CheckPixel-у при правильном использовании - пофиг! Просто цвета/яркости в параметрах могут быть немного другими. Там, где в чёрной теме я проверяю нечёрные пиксели как пиксели ярче 0х10, у тебя надо будет прибавить яркость темы.
 

running-frag

why me?
Сообщения
441
Репутация
60
Re: Colors.au3 (CheckPixel и TrimColor)

ну значит я ленивое

мне влом искать "максимальный цвет", мне проще "играться с градацией белого"

ps: я уже грил что это для личных нужд, а по поводу чёрного меня он бесит, под ним играть невозможно (а перенастраивать каждый раз слишком утомительно)
 
Автор
L

Lexx98

Продвинутый
Сообщения
272
Репутация
73
Re: Colors.au3 (CheckPixel и TrimColor)

Добавил функцию определения простого цвета пикселя. Пользуйтесь при необходимости, но на свой страх и риск. :smile:
 

running-frag

why me?
Сообщения
441
Репутация
60
сейчас поиграемся что там за функция

upd: хотя мой вопрос это всё равно не решает
 

EVEGamer

Знающий
Сообщения
27
Репутация
12
А не кто не думал о алгоритме квантизации(цветоделения) палитры до основных например 7 цветов и уровней яркости 3-4 думаю достаточно, порылся но не нашёл простых формул. В основном решения направлены на обработку изображений, от туда и сложность реализации.
 

EVEGamer

Знающий
Сообщения
27
Репутация
12
Вот сопсно и сам алгоритм.
Код:
Func QColor($nColor)
	$Rez=""
	$Red=BitAND(BitShift($nColor,16),0xFF)
	$Green=BitAND(BitShift($nColor,8),0xFF)
	$Blue=BitAND($nColor,0xFF)
	$Max=0
	If $Red>$Max Then $Max=$Red
	If $Green>$Max Then $Max=$Green
	If $Blue>$Max Then $Max=$Blue
	$Min=$Max
	If $Red<$Min Then $Min=$Red
	If $Green<$Min Then $Min=$Green
	If $Blue<$Min Then $Min=$Blue
	$Grad=60;51
	If ($Max-$Min)<=$Grad Then
		$MaxGrad=int($Max/$Grad)
		If $MaxGrad<1 Then $Rez="Black"
		If $MaxGrad>=1 Then $Rez="Gray"
		If $MaxGrad>=2 Then $Rez="LightGray"
		If $MaxGrad>=3 Then $Rez="White"
	Else
		$RGColor=Abs($Red-$Green)
		$RBColor=Abs($Red-$Blue)
		$BGColor=Abs($Blue-$Green)
		$MaxMin=int(($Max-$Min)/2)
		If $Max=$Red Then
			If $RGColor>=$MaxMin And $RBColor>=$MaxMin Then $Rez="Red"
			If $RGColor< $MaxMin And $RBColor>=$MaxMin Then $Rez="Yellow"
			If $RGColor>=$MaxMin And $RBColor< $MaxMin Then $Rez="Purple"
		ElseIf $Max=$Green Then
			If $RGColor>=$MaxMin And $BGColor>=$MaxMin Then $Rez="Green"
			If $RGColor< $MaxMin And $BGColor>=$MaxMin Then $Rez="Yellow"
			If $RGColor>=$MaxMin And $BGColor< $MaxMin Then $Rez="LightBlue"
		ElseIf $Max=$Blue Then
			If $BGColor>=$MaxMin And $RBColor>=$MaxMin Then $Rez="Blue"
			If $BGColor< $MaxMin And $RBColor>=$MaxMin Then $Rez="LightBlue"
			If $BGColor>=$MaxMin And $RBColor< $MaxMin Then $Rez="Purple"
		EndIf
	EndIf
	Return $Rez
EndFunc
 

running-frag

why me?
Сообщения
441
Репутация
60
Блин бьюсь тут как рыба... Мысли такие.

Допустим есть пикселя. Массив. Что б нагляднее это набор пикселей с овервью. При наведении цвета все меняются. Причём меняются не на чёткую градацию\шейд а как то через одно место. Можно ли как то найти один делитель? Т.е. что бы разница в цвете ДО и ПОСЛЕ наведения была статическая. Мягко говоря мы прибавили "коэффициент" к ненаведённым пикселям и получили наведённые.
 
Верх