//////////////////////////////////////////////////////////// english //
// ------------------------
// -=> WR-descaleimages <=-
// ------------------------
//
// A Javascript for Adobe Illustrator
// by Wolfgang Reszel (ai-js@rumborak.de)
//
// Version 0.3 from 18.2.2002
//
// 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 and date-format change the "de"
// into "en" in line 57.
//
// Sorry for my bad english. For any corrections send an email to:
// [email]ai-js@rumborak.de[/email]
//
//////////////////////////////////////////////////////////// Deutsch //
// ------------------------
// -=> WR-descaleimages <=-
// ------------------------
//
// Ein Javascript fьr Adobe Illustrator
// von Wolfgang Reszel (ai-js@rumborak.de)
//
// Version 0.3 vom 18.2.2002
//
// Dieses Skript skaliert alle ausgewдhlten Bilder wieder auf 100 %.
//
// Einfach alle betreffenden Objekte auswдhlen und dieses Skript
// ausfьhren. Es ist nicht schlimm, wenn auch Pfade mit ausgewдhlt
// wurden.
//
// Da Illustrator den Skalierungsfaktor bei Pixelbildern immer von
// 72 dpi aus berechnet, prьft 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.
//
// Verbesserungsvorschlдge an: [email]ai-js@rumborak.de[/email]
//
//$.bp();
var dpi=300; // CMYK-Resolution / CMYK-Auflцsung
var language="en"; // "de" fьr Deutsch
if (activeDocument.documentColorSpace==1) {var dpi=72;}
if (language == "de") {
var MSG_ask = "WR-descaleimages v0.2\nSollen alle markierten Bilder wieder auf 100 % (ausgehend von "+dpi+" dpi) skaliert werden?";
var MSG_center = "Sollen die Bilder vom Mittelpunkt skaliert werden?";
var MSG_noimages = "Du hast keine Bilder ausgewдhlt.";
var MSG_nodocs = "Kein Dokument geцffnet.";
} else {
var MSG_ask = "WR-descaleimages v0.2\nRescale all selected Images back to 100 % (based on "+dpi+" dpi)?";
var MSG_center = "Rescale the images from center?";
var MSG_noimages = "You have no images selected.";
var MSG_nodocs = "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 (activeDocument.documentColorSpace==2 && 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].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 );
}
}
}
}