Тема: AHK: Преобразование картинки в набор цифр
Есть картинка с заданными цветами пикселей.
У меня есть все эти пиксели , коды цветов и прочее.
Мне нужно преобразовать каждый пиксель картинки в порядковый номер цвета.
Есть вот такая наработка:
SetTitleMatchMode,2
gui,add,edit,vcolors w150 r1 x10 y10 ,6
gui,add,edit,vfil w150 r2 x170 y10 ReadOnly
gui,add,edit,vHeight w150 r1 x10 y35 ,96
gui,add,edit,vwidth w150 r1 x10 y60 ,80
gui,add,Button,gB1 x+ w50, File
gui,add,Button,gB2 x+ w50, start
gui,show
return
GuiClose:
GuiEscape:
ExitApp
b1:
FileSelectFile,file
ff:= RegExReplace(file,".*\\","")
GuiControl,text,fil,%ff%
return
b2:
Clipboard:=
;~ InputBox,colors,введите количество цветов,,100
gui,submit,nohide
if file=
return
run,Notepad.exe %file%,,max,PID
WinWait,Блокнот
PostMessage,0x111,25,00000019,,ahk_pid %pid%
PostMessage,0x111,769,00000301,,ahk_pid %pid%
PostMessage,0x02,,,,ahk_pid %pid%
sleep 1000
StringTrimLeft,Clipboard,Clipboard,1078
if colors = 2
StringReplace,Clipboard,Clipboard,,1,all
else if colors = 3
{
StringReplace,Clipboard,Clipboard,,1,all
StringReplace,Clipboard,Clipboard,,2,all
}
else if colors = 4
{
StringReplace,Clipboard,Clipboard,,1,all
StringReplace,Clipboard,Clipboard,,2,all
StringReplace,Clipboard,Clipboard,,3,all
}
else if colors = 5
{
StringReplace,Clipboard,Clipboard,,1,all
StringReplace,Clipboard,Clipboard,,2,all
StringReplace,Clipboard,Clipboard,,3,all
StringReplace,Clipboard,Clipboard,,4,all
}
else if colors = 6
{
StringReplace,Clipboard,Clipboard,,1,all
StringReplace,Clipboard,Clipboard,,2,all
StringReplace,Clipboard,Clipboard,,3,all
StringReplace,Clipboard,Clipboard,,4,all
StringReplace,Clipboard,Clipboard,,5,all
}
else if colors = 7
{
StringReplace,Clipboard,Clipboard,,1,all
StringReplace,Clipboard,Clipboard,,2,all
StringReplace,Clipboard,Clipboard,,3,all
StringReplace,Clipboard,Clipboard,,4,all
StringReplace,Clipboard,Clipboard,,5,all
StringReplace,Clipboard,Clipboard,,6,all
}
else if colors = 8
{
StringReplace,Clipboard,Clipboard,,1,all
StringReplace,Clipboard,Clipboard,,2,all
StringReplace,Clipboard,Clipboard,,3,all
StringReplace,Clipboard,Clipboard,,4,all
StringReplace,Clipboard,Clipboard,,5,all
StringReplace,Clipboard,Clipboard,,6,all
StringReplace,Clipboard,Clipboard,,7,all
}
StringReplace,Clipboard,Clipboard,%A_Space%,8,all
a:=0
sall=
loop, parse, clipboard
{
sall.=A_LoopField
a++
if a=%height%
{
a:=0
sAll.="`n"
}
}
FileSelectFile ,folder,S,
FileAppend,%height%`n,%folder%.txt
FileAppend,%width%`n,%folder%.txt
FileAppend,%sAll%`n,%folder%.txt
return
f2:: Reload
;~ ,,,,,,,
;~ 1078Она делает что мне нужно только с 2-8 оттенками серого из 8 битной картинки формата bmp.
Редактирую с помощью paint.net -> Коррекция -> Огрубление -> галочка Синхронизация , Ползунки 2-8.
Но нужно ввести размер и количество цветов вручную.

