//////////////////////////////////////////////////////////// english //
// ------------------------
// -=> WR-descaleimages <=-
// ------------------------
//
// A Javascript for Adobe Illustrator
// by Wolfgang Reszel (ai-js@rumborak.de)
//
// Version 0.4 from 17.2.2005
//
// This script rescales all selected images back to 100 %.
//
// Select all relevant objects and execute this script. It doesn't
// matter if you have also selected some paths.
//
// Because Illustrator always uses 72 dpi to calculate the scale on
// raster-images, the script checks if the document is CMYK or RGB.
// For RGB it uses 72 dpi and for CMYK it uses the Value in
// Line 56 (default 300 dpi).
//
// To enable the english messages change the "de" into "en" in line 57.
//
// Sorry for my bad english. For any corrections send an email to:
// ai-js@rumborak.de
//
//////////////////////////////////////////////////////////// Deutsch //
// ------------------------
// -=> WR-descaleimages <=-
// ------------------------
//
// Ein Javascript fuer Adobe Illustrator
// von Wolfgang Reszel (ai-js@rumborak.de)
//
// Version 0.4 vom 17.2.2005
//
// Dieses Skript skaliert alle ausgewaehlten Bilder wieder auf 100 %.
//
// Einfach alle betreffenden Objekte auswaehlen und dieses Skript
// ausfuehren. Es ist nicht schlimm, wenn auch Pfade mit ausgewaehlt
// wurden.
//
// Da Illustrator den Skalierungsfaktor bei Pixelbildern immer von
// 72 dpi aus berechnet, prueft das Skript, ob das Dokument ein CMYK-
// oder RGB-Dokument ist. Bei RGB wird 72 dpi verwendet und bei CMYK
// der Wert, welcher in Zeile 56 festgelegt wurde (300 dpi).
//
// Um dieses Skript mit deutschen Meldungen zu versehen, muss in Zeile
// 57 das "en" durch ein "de" ersetzt werden.
//
// Verbesserungsvorschlaege an: ai-js@rumborak.de
//
//$.bp();
// -------------------------------------------------------------------
var language="en"; // "de" fuer Deutsch
var dpi=300; // CMYK-Resolution / CMYK-Aufloesung
// -------------------------------------------------------------------
var WR="WR-descaleimages v0.4\n\n";
var RGB=0;
try {
if (activeDocument.documentColorSpace == 1 || activeDocument.documentColorSpace == DocumentColorSpace.RGB) {RGB = 1;}
} catch (e) {}
if (RGB == 1) {var dpi=72;}
if (language == "de") {
var MSG_ask = WR+"Sollen alle markierten Bilder wieder auf 100 % (ausgehend von "+dpi+" dpi) skaliert werden?\nPDF, EPS und
PSD-Dateien werden auf ihre Ursprungsgr\xF6\xDFe skaliert.";
var MSG_center = WR+"Sollen die Bilder vom Mittelpunkt skaliert werden?";
var MSG_noimages = WR+"Du hast keine Bilder ausgew\xE4hlt.";
var MSG_nodocs = WR+"Kein Dokument ge\xF6ffnet.";
} else {
var MSG_ask = WR+"Rescale all selected Images back to 100 % (based on "+dpi+" dpi)?\nPDF, EPS and PSD-files will be rescaled to
their original size.";
var MSG_center = WR+"Rescale the images from center?";
var MSG_noimages = WR+"You have no images selected.";
var MSG_nodocs = WR+"You have no open document."
}
var itemstoprocess=0;
var error=0;
if (documents.length<1) {
error++;
alert(MSG_nodocs);
} else {
var theTest = selection;
for (var i = 0 ; i < theTest.length; i++)
{
if (theTest[i].typename == "RasterItem" || theTest[i].typename == "PlacedItem" ) { itemstoprocess++ ; }
}
if (itemstoprocess>0)
{
if (error < 1) {
if (confirm(MSG_ask)) {
descale();
}
}
} else {
alert (MSG_noimages);
}
}
function descale() {
theItems = selection;
var center = confirm(MSG_center);
var processedItems=0;
for (var i = 0 ; i < theItems.length; i++)
{
if (theItems[i].typename == "RasterItem" || theItems[i].typename == "PlacedItem" ) {
processedItems++;
var oldwidth = theItems[i].width;
var oldheight = theItems[i].height;
var oldx = theItems[i].position[0];
var oldy = theItems[i].position[1];
if (RGB != 1 && theItems[i].typename == "RasterItem") { var dpiscale=dpi/72; } else { var dpiscale=1; }
theItems[i].matrix.mValueA = 1/dpiscale;
theItems[i].matrix.mValueB = 0;
theItems[i].matrix.mValueC = 0;
if (theItems[i].typename == "PlacedItem" && (theItems[i].file.name.indexOf('.pdf') != -1 || theItems[i].file.name.indexOf('.psd') != -1 || theItems[i].file.name.indexOf('.tif') != -1)) {
theItems[i].matrix.mValueD = -1/dpiscale;
} else {
theItems[i].matrix.mValueD = 1/dpiscale;
}
theItems[i].left = oldx;
theItems[i].top = oldy;
if(center == true) {
var newwidth = theItems[i].width;
var newheight = theItems[i].height;
theItems[i].translate( (oldwidth-newwidth)/2 , (newheight-oldheight)/2 );
}
}
}
}