<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; WSH: разбиение/склейка изображений]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=2381</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=2381&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «WSH: разбиение/склейка изображений».]]></description>
		<lastBuildDate>Mon, 27 Oct 2008 12:42:08 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[WSH: разбиение/склейка изображений]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=15239#p15239</link>
			<description><![CDATA[<div class="codebox"><pre><code>&lt;job&gt;
 &lt;script language=&quot;JScript&quot;&gt;

  // Разбиение картинки на части
  // использование img_split.wsf имяфайла v_или_h количество_частей
  // v - вертикальное разбиение, h - горизонтальное
  // Для работы требуется бесплатный компонент GflAX (http://pagesperso-orange.fr/pierre.g/xnview/engfl.html)

  var gfl=new ActiveXObject(&quot;GflAx.GflAx&quot;);
  var arg=WSH.arguments;

  if(arg.length&lt;3)
  {
   WSH.echo(&quot;usage: &quot;+WSH.ScriptName+&quot; filename v|h parts&quot;);
  }
  else
  {
   var fname=arg(0), parts=arg(2), hrz=arg(1)==&quot;h&quot;;
   with(gfl)
   {
    saveFormat=1;     // формат сохраниения JPEG
    saveJPEGQuality=90;
    saveJPEGProgressive=false;
    saveKeepMetadata=false;

    for(var i=0; i&lt;parts; i++)
    {
     loadBitmap(fname);
     if(hrz)        // горизонтальное разбиение
     {
      var size=width/parts;
      crop(i*size,0,size,height);
     }
     else        // вертикальное разбиение
     {
      var size=height/parts;
      crop(0,i*size,width,size);
     }
     saveBitMap(fname.replace(/[^\.]+$/,i+&quot;.&quot;)); // имена частей: имяфайла.номер.jpg
    }
   }
  }

  &lt;/script&gt;
&lt;/job&gt;</code></pre></div><div class="codebox"><pre><code>&lt;job&gt;
 &lt;script language=&quot;JScript&quot;&gt;

  // Склейка картинки из частей
  // использование img_join.wsf имяфайла v_или_h количество_частей
  // v - вертикальная склейка, h - горизонтальная склейка
  // Для работы требуется бесплатный компонент GflAX (http://pagesperso-orange.fr/pierre.g/xnview/engfl.html)

  var gfl=new ActiveXObject(&quot;GflAx.GflAx&quot;);
  var arg=WSH.arguments;

  if(arg.length&lt;3)
  {
   WSH.echo(&quot;usage: &quot;+WSH.ScriptName+&quot; v|h part1 part2 ...&quot;);
  }
  else
  {
   var hrz=arg(0)==&quot;h&quot;, parts={}, dx=0, dy=0, y=0, x=0;
   with(gfl)
   {
    for(var i=1; i&lt;arg.length; i++) // вычисляем суммарный размер и смещения частей
    {
     loadBitmap(arg(i));
     if(hrz)
     {
      y=Math.max(y,height);
      x+=width;
      parts[arg(i)]={x:dx,y:0};
      dx+=width;
     }
     else
     {
      x=Math.max(x,width);
      y+=height;
      parts[arg(i)]={x:0,y:dy};
      dy+=height;
     }
    }

    saveFormat=1;          // формат сохраниения JPEG
    saveJPEGQuality=90;
    saveJPEGProgressive=false;
    saveKeepMetadata=false;
    gfl.newBitmap(x,y,0xffffff); // создаем пустую результирующую картинку

    for(var i in parts)         // впечатываем в нее части
      gfl.drawImage(i,parts[i].x,parts[i].y);

    saveBitMap(i.replace(/\..+$/,&quot;.join.&quot;));
   }
  }

  &lt;/script&gt;
&lt;/job&gt;</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (fps)]]></author>
			<pubDate>Mon, 27 Oct 2008 12:42:08 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=15239#p15239</guid>
		</item>
	</channel>
</rss>
