<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK: Определение размеров изображения в PSD/PSB-файлах]]></title>
		<link>http://forum.script-coding.com/viewtopic.php?id=7958</link>
		<atom:link href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=7958&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Определение размеров изображения в PSD/PSB-файлах».]]></description>
		<lastBuildDate>Tue, 08 Jan 2013 13:05:40 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[AHK: Определение размеров изображения в PSD/PSB-файлах]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=68284#p68284</link>
			<description><![CDATA[<p>Информацию о размерах изображения в <a href="http://www.adobe.com/devnet-apps/photoshop/fileformatashtml/PhotoshopFileFormats.htm">psd/psb-файле</a> можно получить из его <a href="http://www.adobe.com/devnet-apps/photoshop/fileformatashtml/PhotoshopFileFormats.htm#50577409_pgfId-1055726">заголовка</a> (File Header Section). Высота изображения находится по смещению 14 от начала заголовка, ширина по смещению 18. Данные записаны в формате <a href="http://ru.wikipedia.org/wiki/Big_endian#.D0.9F.D0.BE.D1.80.D1.8F.D0.B4.D0.BE.D0.BA_.D0.BE.D1.82_.D1.81.D1.82.D0.B0.D1.80.D1.88.D0.B5.D0.B3.D0.BE_.D0.BA_.D0.BC.D0.BB.D0.B0.D0.B4.D1.88.D0.B5.D0.BC.D1.83">big-endian</a>, для <a href="http://ru.wikipedia.org/wiki/Big_endian#.D0.9A.D0.BE.D0.BD.D0.B2.D0.B5.D1.80.D1.82.D0.B0.D1.86.D0.B8.D1.8F">конвертации</a> в формат little-endian, используемый в процессорах архитектуры x86-64, можно применить api-функцию <a href="http://msdn.microsoft.com/en-us/library/ms740069%28VS.85%29.aspx">ntohl()</a>.<br /></p><div class="codebox"><pre><code>psb := &quot;C:\Users\User\Desktop\Untitled-1.psb&quot;  ; указать путь к файлу
file := FileOpen(psb, 0x100)
file.Seek(14)

H := DllCall(&quot;Ws2_32\ntohl&quot;, UInt, file.ReadUInt(), UInt)
W := DllCall(&quot;Ws2_32\ntohl&quot;, UInt, file.ReadUInt(), UInt)
file.Close()

MsgBox % &quot;Ширина - &quot; . W . &quot;`nВысота - &quot; . H
return</code></pre></div><p>Авторы скрипта <strong>Irbis</strong> и <strong>teadrinker</strong>.<br /><a href="http://forum.script-coding.com/viewtopic.php?id=7923">Тема для обсуждения</a>.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Tue, 08 Jan 2013 13:05:40 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=68284#p68284</guid>
		</item>
	</channel>
</rss>
