<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: Поточечный вывод изображения из файла на экран]]></title>
	<link rel="self" href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=10974&amp;type=atom" />
	<updated>2015-09-25T11:10:35Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.script-coding.com/viewtopic.php?id=10974</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Поточечный вывод изображения из файла на экран]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=97684#p97684" />
			<content type="html"><![CDATA[<p><span style="color: green"><strong>steets</strong>, ещё раз внимательно ознакомьтесь с указанной темой, обратите внимание на правила цитирования, отредактируйте свои посты.</span></p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2015-09-25T11:10:35Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=97684#p97684</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Поточечный вывод изображения из файла на экран]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=97683#p97683" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>yalanne пишет:</cite><blockquote><p><a href="http://www.autohotkey.com/board/topic/29449-gdi-standard-library-145-by-tic/">Gdi+</a><br /></p><div class="codebox"><pre><code>#SingleInstance, Force
#NoEnv
SetBatchLines, -1
#Include, Gdip.ahk
pToken := Gdip_Startup()
OnExit, Exit

; Создаем окно с нужными стилями для работы gdi+
Gui, 1: -Caption +E0x80000 +LastFound +AlwaysOnTop +ToolWindow +OwnDialogs
Gui, 1: Show, NA

; размер рисунка на весь экран.
Width := A_ScreenWidth, Height := A_ScreenHeight

; Начальные настройки для gdi+
hwnd := WinExist()    ,    hbm := CreateDIBSection(Width, Height)    ,    hdc := CreateCompatibleDC()
obm := SelectObject(hdc, hbm)    ,    G := Gdip_GraphicsFromHDC(hdc)

; Режим сглаживания на 4.
;Gdip_SetSmoothingMode(G, 4)


; читаем построчно файл list.txt 
Loop,Read,%A_ScriptDir%\list.txt,
{
    ;Делим строку на 5 частей. 1 и 2 это xy. 5 это color. 
    ;3 и 4 По умолчанию пустые, но если после x и y указать двоеточие(:) то указывается x2 и y2. Нужно что бы рисовать линию между этими точками.
    RegExMatch(A_LoopReadLine,&quot;(\d+)/(\d+)(?:\:(\d+)/(\d+)){0,1}/(.*)&quot;,xyc)
    ; Если x2 и y2 пустые задаем им такие же значения как у x1+1 и y2.
    % (xyc3 = &quot;&quot;) and (xyc4 = &quot;&quot;) and (xyc3 := xyc1+0.1)true and (xyc4 := xyc2)true
    ; В gdi+ еще надо указывать прозрачность. Задаем 100 процентную видимость нарисованного. в color.
    xyc5|=0xff000000
    ; задаем цвет кисти и толщиной в 1 пиксель
    pPen := Gdip_CreatePen(xyc5, 1)
    ; рисуем пиксель\линию.
    Gdip_DrawLines(G, pPen    , xyc1 &quot;,&quot; xyc2 &quot;|&quot; xyc3 &quot;,&quot; xyc4 )
    ; очищаем кисть.
    Gdip_DeletePen(pPen)
}


; Обновить\Показать окно.
UpdateLayeredWindow(WinExist(), hdc, 0, 0, Width, Height)
return


Exit:
; gdi+ may now be shutdown on exiting the program
Gdip_Shutdown(pToken)
ExitApp
Return</code></pre></div><p>Читает из файла list.txt который лежит рядом со скриптом.<br />Что бы нарисовать линию от точки A до B надо указывать в list.txt вот так<br /></p><div class="codebox"><pre><code>x/y:x2/y2/color
Пример: 647/272:647/280/0xFFFFFF</code></pre></div><p>А если указывать стандартно, то работа с одним пикселем.<br /></p><div class="codebox"><pre><code>x/y/color
Пример: 647/272/0xFFFFFF</code></pre></div></blockquote></div><p>Огромное спасибо!</p>]]></content>
			<author>
				<name><![CDATA[steets]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=33367</uri>
			</author>
			<updated>2015-09-25T09:38:56Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=97683#p97683</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Поточечный вывод изображения из файла на экран]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=97682#p97682" />
			<content type="html"><![CDATA[<p><a href="http://www.autohotkey.com/board/topic/29449-gdi-standard-library-145-by-tic/">Gdi+</a><br /></p><div class="codebox"><pre><code>#SingleInstance, Force
#NoEnv
SetBatchLines, -1
#Include, Gdip.ahk
pToken := Gdip_Startup()
OnExit, Exit

; Создаем окно с нужными стилями для работы gdi+
Gui, 1: -Caption +E0x80000 +LastFound +AlwaysOnTop +ToolWindow +OwnDialogs
Gui, 1: Show, NA

; размер рисунка на весь экран.
Width := A_ScreenWidth, Height := A_ScreenHeight

; Начальные настройки для gdi+
hwnd := WinExist()    ,    hbm := CreateDIBSection(Width, Height)    ,    hdc := CreateCompatibleDC()
obm := SelectObject(hdc, hbm)    ,    G := Gdip_GraphicsFromHDC(hdc)

; Режим сглаживания на 4.
;Gdip_SetSmoothingMode(G, 4)


; читаем построчно файл list.txt 
Loop,Read,%A_ScriptDir%\list.txt,
{
    ;Делим строку на 5 частей. 1 и 2 это xy. 5 это color. 
    ;3 и 4 По умолчанию пустые, но если после x и y указать двоеточие(:) то указывается x2 и y2. Нужно что бы рисовать линию между этими точками.
    RegExMatch(A_LoopReadLine,&quot;(\d+)/(\d+)(?:\:(\d+)/(\d+)){0,1}/(.*)&quot;,xyc)
    ; Если x2 и y2 пустые задаем им такие же значения как у x1+1 и y2.
    % (xyc3 = &quot;&quot;) and (xyc4 = &quot;&quot;) and (xyc3 := xyc1+0.1)true and (xyc4 := xyc2)true
    ; В gdi+ еще надо указывать прозрачность. Задаем 100 процентную видимость нарисованного. в color.
    xyc5|=0xff000000
    ; задаем цвет кисти и толщиной в 1 пиксель
    pPen := Gdip_CreatePen(xyc5, 1)
    ; рисуем пиксель\линию.
    Gdip_DrawLines(G, pPen    , xyc1 &quot;,&quot; xyc2 &quot;|&quot; xyc3 &quot;,&quot; xyc4 )
    ; очищаем кисть.
    Gdip_DeletePen(pPen)
}


; Обновить\Показать окно.
UpdateLayeredWindow(WinExist(), hdc, 0, 0, Width, Height)
return


Exit:
; gdi+ may now be shutdown on exiting the program
Gdip_Shutdown(pToken)
ExitApp
Return</code></pre></div><p>Читает из файла list.txt который лежит рядом со скриптом.<br />Что бы нарисовать линию от точки A до B надо указывать в list.txt вот так<br /></p><div class="codebox"><pre><code>x/y:x2/y2/color
Пример: 647/272:647/280/0xFFFFFF</code></pre></div><p>А если указывать стандартно, то работа с одним пикселем.<br /></p><div class="codebox"><pre><code>x/y/color
Пример: 647/272/0xFFFFFF</code></pre></div>]]></content>
			<author>
				<name><![CDATA[yalanne]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=32850</uri>
			</author>
			<updated>2015-09-25T09:24:55Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=97682#p97682</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Поточечный вывод изображения из файла на экран]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=97675#p97675" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>ypppu пишет:</cite><blockquote><p>0) Ознакомиться с библиотекой GDI+<br />1) Считывать из файла строки по порядку командой <em>Loop (чтение файла)</em><br />2) Внутри цикла делать разбор строки командой <em>StrSplit</em> или <em>RegEx</em><br />3) Используя GDI+, нарисовать текущую точку<br />4) След. точка и т. д.</p></blockquote></div><p>GDI+ где на русском про него нормальную инфо найти? потому что уже натыкался на примеры, но нормальных русскоязычных разъяснений не находил.</p>]]></content>
			<author>
				<name><![CDATA[steets]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=33367</uri>
			</author>
			<updated>2015-09-24T22:16:01Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=97675#p97675</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Поточечный вывод изображения из файла на экран]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=97674#p97674" />
			<content type="html"><![CDATA[<p>0) Ознакомиться с библиотекой GDI+<br />1) Считывать из файла строки по порядку командой <em>Loop (чтение файла)</em><br />2) Внутри цикла делать разбор строки командой <em>StrSplit</em> или <em>RegEx</em><br />3) Используя GDI+, нарисовать текущую точку<br />4) След. точка и т. д.</p>]]></content>
			<author>
				<name><![CDATA[ypppu]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=5974</uri>
			</author>
			<updated>2015-09-24T20:13:43Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=97674#p97674</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Поточечный вывод изображения из файла на экран]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=97673#p97673" />
			<content type="html"><![CDATA[<p><span style="color: green"><strong>steets</strong>, ознакомьтесь с <a href="http://forum.script-coding.com/viewtopic.php?id=6148">этой</a> темой, отредактируйте заголовок.</span></p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2015-09-24T19:11:51Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=97673#p97673</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[AHK: Поточечный вывод изображения из файла на экран]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=97672#p97672" />
			<content type="html"><![CDATA[<p>Всем Привет!<br />Совсем недавно начал изучать AHK, поэтому прошу помощи, так как самостоятельно найти более имение сносные гайды не смог.<br />Суть проблемы в следующем, есть у меня файл, в котором указаны положения точек(x и y) и их цвет.<br />Мне нужно по данным координатам нарисовать их на экране.</p><p>содержание файла из которого должна идти загрузка, следующее:<br />647/272/0xFFFFFF<br />647/273/0xFFFFFF<br />647/274/0xFFFFFF<br />647/275/0xFFFFFF<br />647/276/0xFFFFFF<br />647/277/0xFFFFFF<br />647/278/0xFFFFFF<br />647/279/0xFFFFFF<br />647/280/0xFFFFFF<br />647/281/0xF0F0F0<br />647/282/0xF0F0F0<br />647/283/0xF0F0F0</p><p>если необходимо, поменять разделители в файле, то это не проблема.<br />Для меня сейчас основная проблема, понять, как нарисовать точку по заданной координате.<br />Заранее благодарен за помощь.</p>]]></content>
			<author>
				<name><![CDATA[steets]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=33367</uri>
			</author>
			<updated>2015-09-24T18:45:03Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=97672#p97672</id>
		</entry>
</feed>
