<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK: Поиск из нескольких изображений и "запоминание" данных.]]></title>
		<link>http://forum.script-coding.com/viewtopic.php?id=14551</link>
		<atom:link href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=14551&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Поиск из нескольких изображений и "запоминание" данных.».]]></description>
		<lastBuildDate>Fri, 15 Feb 2019 10:34:17 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: Поиск из нескольких изображений и "запоминание" данных.]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=132184#p132184</link>
			<description><![CDATA[<p>Я не очень силен в ahk. Потому не претендую что этот способ является оптимальным, но именно так я решил свою задачу по сохранению изображения в файл.<br />Где-то выдернул этот код, есть масса примеров если поискать.<br /></p><div class="codebox"><pre><code>
#include gdip.ahk
.
.
Screenshot(outfile, screen)
{
	pToken := Gdip_Startup()
	pBitmap := Gdip_BitmapFromScreen(screen)
	Gdip_SaveBitmapToFile(pBitmap, outfile, 100)
	Gdip_DisposeImage(pBitmap)
	Gdip_Shutdown(pToken)
}

; Вызов 
str= %xx%|%yy%|50|10    ; xx,yy  - левый верхний угол .   дальше размеры картинки в пикселях для примера.
 Screenshot(name_file &quot;.png&quot;, str)     ; тут можно динамически подставлять имя файла или просто задать, что бы был один и тот же.

</code></pre></div><p>скачать gdip.ahk -&nbsp; для работы с графикой он по любому пригодится.</p>]]></description>
			<author><![CDATA[null@example.com (lngvar)]]></author>
			<pubDate>Fri, 15 Feb 2019 10:34:17 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=132184#p132184</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Поиск из нескольких изображений и "запоминание" данных.]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=132073#p132073</link>
			<description><![CDATA[<p><strong>lngvar</strong><br />Спасибо. Этот вопрос в общем то решил. И да, 125 много, оставлял на время теста, хватает 20.<br />Теперь столкнулся с проблемкой, что вручную резать картинки крайне лень, а придумать скрипт который сам это делает по координатам что то не могу. На форуме вроде натыкался один раз, а сейчас найти не могу(</p>]]></description>
			<author><![CDATA[null@example.com (Bromka)]]></author>
			<pubDate>Sat, 09 Feb 2019 04:16:15 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=132073#p132073</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Поиск из нескольких изображений и "запоминание" данных.]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=132013#p132013</link>
			<description><![CDATA[<div class="codebox"><pre><code>
loop	
{
img:=&quot;img&quot;. A_Index . &quot;.tif&quot;
ImageSearch, FoundX, FoundY, HolderCellHeightMin, HolderCellWidthMin, HolderCellHeightMax, HolderCellWidthMax, *125 %img%
}
</code></pre></div><p>как то так<br />делаешь картинки с изменяющейся в названии последней цифры.</p><p>Ты уверен что тебе нужна вариация *125 ? Это очень много. Это в десятки раз замедляет поиск.<br />Подбери методом проб и ошибок минимальное значение. И ты удивишься насколько быстрым окажется поиск.<br />Я не уверен, но мне кажется, что было бы разумнее искать картинки в bmp или png.</p>]]></description>
			<author><![CDATA[null@example.com (lngvar)]]></author>
			<pubDate>Thu, 07 Feb 2019 22:00:12 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=132013#p132013</guid>
		</item>
		<item>
			<title><![CDATA[AHK: Поиск из нескольких изображений и "запоминание" данных.]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=131958#p131958</link>
			<description><![CDATA[<p>Вопрос, вероятно, банальный, но в поиске не нашел.<br />Нужно проверить таблицу 12*5 ячеек, и в случае совпадения с одним из изображений (их порядка 30 разных) совершить действие. Так же нужно ассоциировать нахождение с каким-либо параметром (условно в результате должно получится, что при нахождение нужных изображений происходит клик мыши, а в итоге выводится таблица - найдено 4 совпадений X, 5 Y и 3 Z. <br />Сейчас скрипт на этом этапе </p><div class="codebox"><pre><code>
^2::
HolderCellHeightMin := 1272 ;начальная точка по горизонтали
HolderCellHeightMax := HolderCellHeightMin + 52.5 ;конечная точка по горизонтали
CurrencyCell := 0 ;количество нахождений
Loop, 12 ;цикл на 12 ячеек по горизонтали
{    
HolderCellWidthMin  := 588 ;начальная точка по вертикали
HolderCellWidthMax  := HolderCellWidthMin + 52.5 ;конечная точка по вертикали
    
    ImageSearch, FoundX, FoundY, HolderCellHeightMin, HolderCellWidthMin, HolderCellHeightMax, HolderCellWidthMax, *75 chaos.tif ;ищем в ячейке 52*52 картинку, координаты даются при нахождении
    /*  
    if Errorlevel = 0
    {
        CurrencyCell := CurrencyCell + 1 
        MsgBox %CurrencyCell%, %HolderCellHeightMax%   
    } 
    */
    Loop, 5
     {
  ImageSearch, FoundX, FoundY, HolderCellHeightMin, HolderCellWidthMin, HolderCellHeightMax, HolderCellWidthMax, *125 chaos.tif
  if Errorlevel = 0 
      {
      CurrencyCell := CurrencyCell + 1
 ;     MsgBox координаты ячейки по вертикали %HolderCellWidthMin%, %HolderCellWidthMax%
      }
    HolderCellWidthMin := HolderCellWidthMin + 52.5
    HolderCellWidthMax := HolderCellWidthMax + 52.5
    }

    HolderCellHeightMin := HolderCellHeightMin + 52.5 ;начальную точку по горизонтали переводим на следующую ячейку
    HolderCellHeightMax := HolderCellHeightMax + 52.5 ;конечную  точку по горизонтали переводим на следующую ячейку
}
MsgBox координаты ячейки по горизонтали %HolderCellHeightMin%, %HolderCellHeightMax%. Число совпадений %CurrencyCell%.
Return
</code></pre></div><p>Вероятно, что все это нужно загнать в функцию с подставлением изображения в качестве переменной (не знаю как), но учитывая, что 1 картинку скрипт обрабатывает порядка секунды, увеличение этого количества до 30 даст соответствующее количество секунд на выполнение. А хотелось бы уложиться в 3-5 секунд. </p><p>Кроме того, мне совершенно не нравится объемность кода, учитывая, что действия простые и наверяка можно как то сократить.<br />Заранее спасибо.</p>]]></description>
			<author><![CDATA[null@example.com (Bromka)]]></author>
			<pubDate>Mon, 04 Feb 2019 05:22:05 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=131958#p131958</guid>
		</item>
	</channel>
</rss>
