<job>
<script language="JScript">
// Разбиение картинки на части
// использование img_split.wsf имяфайла v_или_h количество_частей
// v - вертикальное разбиение, h - горизонтальное
// Для работы требуется бесплатный компонент GflAX (http://pagesperso-orange.fr/pierre.g/xnview/engfl.html)
var gfl=new ActiveXObject("GflAx.GflAx");
var arg=WSH.arguments;
if(arg.length<3)
{
WSH.echo("usage: "+WSH.ScriptName+" filename v|h parts");
}
else
{
var fname=arg(0), parts=arg(2), hrz=arg(1)=="h";
with(gfl)
{
saveFormat=1; // формат сохраниения JPEG
saveJPEGQuality=90;
saveJPEGProgressive=false;
saveKeepMetadata=false;
for(var i=0; i<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+".")); // имена частей: имяфайла.номер.jpg
}
}
}
</script>
</job>
<job>
<script language="JScript">
// Склейка картинки из частей
// использование img_join.wsf имяфайла v_или_h количество_частей
// v - вертикальная склейка, h - горизонтальная склейка
// Для работы требуется бесплатный компонент GflAX (http://pagesperso-orange.fr/pierre.g/xnview/engfl.html)
var gfl=new ActiveXObject("GflAx.GflAx");
var arg=WSH.arguments;
if(arg.length<3)
{
WSH.echo("usage: "+WSH.ScriptName+" v|h part1 part2 ...");
}
else
{
var hrz=arg(0)=="h", parts={}, dx=0, dy=0, y=0, x=0;
with(gfl)
{
for(var i=1; i<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(/\..+$/,".join."));
}
}
</script>
</job>