Pular para o conteúdo principal

Seletor de posição e cor da imagem

O “seletor de posição e cor da imagem” permite escolher uma captura do rolo da câmera do sistema ou do diretório principal e marcar um ou mais pixels para obter sua posição ou cor.

O “seletor de uma posição de imagem” do tipo pos permite escolher um pixel e obter sua posição. Seu valor retornado é um array com dois números, respectivamente as coordenadas x e y do pixel, por exemplo:

{ 512, 373 }

O “seletor de uma cor de imagem” do tipo color permite escolher um pixel e obter sua cor. Seu valor retornado é a forma numérica RGB da cor do pixel, por exemplo:

0x3c1f8b

O “seletor de posição e cor de uma imagem” do tipo poscolor permite escolher um pixel e obter sua posição e cor. Seu valor retornado é um array com três números: a coordenada x do pixel, a coordenada y e a forma numérica RGB da cor do pixel, por exemplo:

{ 512, 373, 0x3c1f8b }

O “seletor de várias posições e cores de imagem” do tipo poscolors permite escolher um ou mais pixels e obter suas posições e cores. Seu valor retornado é um array bidimensional contendo, para cada pixel selecionado, as coordenadas x e y e a forma numérica RGB de sua cor, por exemplo:

{
{ 512, 373, 0x3c1f8b },
{ 512, 374, 0x3c1f7c },
{ 512, 375, 0x3c1f89 },
-- ...
}

Exemplo

local group, name

group = '图色'
name = 'if (screen.is_colors(poscolors, 90)) then ... end'

return {
name = string.format('%s - %s', group, name),
description = "屏幕多点颜色匹配",
arguments = {
{type = 'poscolors'},
},
-- default = nil, -- este seletor ainda não oferece suporte a um valor padrão
generator = function(poscolors)
local pcs = {}
for i, pc in ipairs(poscolors) do
pcs[#pcs + 1] = string.format('\t{ %4d, %4d, 0x%06x}, -- %3d\n', pc[1], pc[2], pc[3] & 0x00ffffff, i)
end
return string.format([[
if (screen.is_colors({
%s}, 90)) then
@@
end]], table.concat(pcs)) -- inserir @@ no trecho de código retornado move automaticamente o cursor do editor para esse ponto.
end,
}

IMG_0009.PNG

IMG_0010.PNG

IMG_0013.PNG