[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt [JS scriptUI] listbox image: scale statt crop (Marc Autret Image.prototype anwendbar?)

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Print/Bildbearbeitung - Photos, Layout, Design
Themen
Beiträge
Moderatoren
Letzter Beitrag

[JS scriptUI] listbox image: scale statt crop (Marc Autret Image.prototype anwendbar?)

NEU!
Beiträge gesamt: 181

14. Dez 2015, 10:01
Beitrag # 1 von 1
Bewertung:
(1237 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moinmoin,

ich fuchtel mich mit der Machete durch Javascript, und lerne immer mehr über die Syntax – wenn es denn schön ge/beschrieben ist. Leider kann ich die effiziente Scriptweise von Marc noch nicht verstehen, folglich error ich mich hier durch ein Projekt, bei dem ich jetzt nach Hilfe fragen will:

Meinem Script soll eine Auflistung der exportierten JPGs folgen, deren Dimension aber größer als ihr Feld in der Listbox sind. Nativ haben sie die Dialogbox gesprengt.
Aber mit myList.itemSize= [550,50]; konnte ich die Größe begrenzen…aber:

Leider werden die Bilder, wie in der scriptUI beim Begrenzen beschnitten, statt skaliert. Dafür hat Marc ein tolles Scriptschnipsel:

Code
Image.prototype.onDraw = function() 
{ // written by Marc Autret
// "this" is the container; "this.image" is the graphic
if( !this.image ) return;
var WH = this.size,
wh = this.image.size,
k = Math.min(WH[0]/wh[0], WH[1]/wh[1]),
xy;
// Resize proportionally:
wh = [k*wh[0],k*wh[1]];
// Center:
xy = [ (WH[0]-wh[0])/2, (WH[1]-wh[1])/2 ];
this.graphics.drawImage(this.image,xy[0],xy[1],wh[0],wh[1]);
WH = wh = xy = null;
}
var w = new Window ("dialog", "Bouquet");
var flowers = w.add ("image", undefined, File ("/d/scriptui/bouquet.jpg"));
flowers.size = [50,50];
w.show ();


(Quelle ScriptUI Peter Kahrel, Danke!)


Jetzt habe ich hier meine ersten Dialogfensterentwürfe, leider ohne den Rest des Scripts nicht verwendbar, aber zu lang um hier abzulegen…

Wer könnte mir helfen, diesen Image-Prototype-Wahnsinn hier irgendwie einzubasteln von der Theroie her?

Hier mein Fensterchen:
Code
var w = new Window ("dialog"); 
var minicounter = -1;
var myList = w.add ("listbox", undefined, "", {numberOfColumns: 4, showHeaders: true, columnTitles: ["Sicht","Export", "Name", "Größe"], columnWidths: [50,60,400,80]});
for (var k = 0; k < myMark.length; k++)
{ if (myMark[k][4] == true) {
minicounter ++;
with (myList.add ("item", "nothing yet"))
{
if (OF == false) {var FileTemp = File(myMark[k][0]);} else {var FileTemp = File(myMark[k][1]+".jpg")}
myList.items[minicounter].image = File(FileTemp);
subItems[0].text = ""+k;
subItems[1].text = FileTemp.displayName;
subItems[2].text = formatBytes(FileTemp.length);
}
}
myList.itemSize= [550,50];
}

w.show ();
}


(Dieser Beitrag wurde von NEU! am 14. Dez 2015, 10:06 geändert)
X