//FFSubmenu=Skalieren
//FFName=Skalieren & Komprimieren
var fso = new ActiveXObject("Scripting.FileSystemObject");
var dlg = "Skalieren & Komprimieren";
FF_AddDialog(dlg,120,44);
var widtht = new Control("Breite:","STATIC",2,2,20,11);
var width = new Control("Breite","EDIT",24,3,20,9);
var heightt = new Control("Höhe:","STATIC",70,2,20,11);
var height = new Control("Höhe","EDIT",94,3,20,9);
var compt = new Control("Kompression (1-100):","STATIC",36,16,56,11);
var comp = new Control("Kompression","EDIT",94,17,20,9);
var action = new Control("Ausführen","BUTTON",2,30,50,11);
FF_ActivateControl(dlg,width.name);
FF_SetControl(dlg,width.name,"800");
FF_SetControl(dlg,height.name,"600");
FF_SetControl(dlg,comp.name,"80");
for(;;)
{
var result = FF_ShowDialog(dlg);
switch(result)
{
case action.name: Scale();
default: result = "CANCEL"; break;
}
if(result == "CANCEL") break;
}
FF_CloseDialog(dlg);
function Scale()
{
var i,cnt=FF_GetImageCount();
var name,parts,oxs,oys,sxs,sys,c;
sxs = parseInt(width.Get()); sys = parseInt(height.Get()); c = comp.Get();
if(sys > sxs) {i = sxs; sxs = sys; sys = i;}
for(i=0; i<cnt; i++)
{
FF_SetProgress(i,cnt-1);
name = FF_GetImageName(i);
if(!FF_LoadImage(name)) continue;
oxs = FF_GetImageWidth(); oys = FF_GetImageHeight();
if(oxs > oys) FF_HQScale(sxs,sys,true);
else FF_HQScale(sys,sxs,true);
parts = SplitPath(name);
oxs = FF_GetImageWidth(); oys = FF_GetImageHeight();
name = parts.dir + parts.file + "-" + oxs + "x" + oys + ".jpg";
FF_SaveImage(name,c);
}
}
function Control(name,type,x,y,w,h,style)
{
this.name = name;
FF_AddControl(dlg,name,type,x,y,w,h);
if(style != 0) FF_SetControlStyle(dlg,name,style);
this.Set = function(val) {FF_SetControl(dlg,this.name,val);}
this.Get = function() {return FF_GetControl(dlg,this.name);}
}
// liefert Verzeichnis mit abschließendem Backslash,
// Dateinamen und Erweiterung mit einleitendem Punkt
function SplitPath(path)
{
var result = new Object();
result.dir = fso.GetParentFolderName(path) + "\\";
result.file = fso.GetBaseName(path);
result.ext = "." + fso.GetExtensionName(path);
return result;
}