Ich muss eine Grafik drehen, die ich in Adobe Illustrator erstellt habe.
Die Komplikation besteht darin, dass nur die Pfeilebene gedreht werden muss (um die Bildmitte herum). Das schließt aus, die Datei einfach in ein Programm zu werfen und alle 5 Grad ausgeben zu lassen, sonst würde sich das Bussymbol in der Mitte auch drehen. Es muss die Pfeilebene alle 5 Grad speziell um die Mitte drehen, also beschränkt mich das vermutlich auf interne Illustrator/Photoshop-Skripte?
Es gibt auch verschiedene Farbvariationen. Dies von Hand zu tun, wird viele Stunden dauern. Gibt es eine Möglichkeit, dies mit einem Skript zu vereinfachen, das die Pfeilebene für mich drehen und dann die Datei speichern kann?
Dies ist ein sehr schnelles Skript, das das tun sollte, was Sie brauchen:
#target illustrator
var doc = app.activeDocument;
var docName = doc.name.replace(/\.[^\.]+$/, ''),
docDir = ( doc.path != '' ) ? doc.path : '~';
var angle = 5,
iterations = 71,
layerToRotate = 'rotateMe',
destFolder = 'files';
rotateAndExport();
/**
* This is where the magic happens...
*/
function rotateAndExport() {
// loop through layers
for ( var i = 0; i < doc.layers.length; i++ ) {
// loop through layer's pageItems
var layer = doc.layers[i];
if ( layer.name == layerToRotate ) {
for ( var j = 0; j < layer.pageItems.length; j++ ) {
var item = layer.pageItems[j];
// rotate and export
for ( var r = 0; r < iterations; r++ ) {
item.rotate( angle );
exportFileAs( 'PNG', r );
exportFileAs( 'SVG', r );
}
}
}
}
}
/**
* Export as PNG or SVG
*/
function exportFileAs( fileType, iteration ) {
// create folder if it doesn't exist
var destPath = docDir + '/' + destFolder;
if ( false == Folder( destPath ).exists ) {
new Folder( destPath ).create();
}
// export options
var destFile;
var type;
var exportOptions;
if ( 'PNG' == fileType ) {
// create folder if it doesn't exist
var pngPath = destPath + '/PNG/';
if ( false == Folder( pngPath ).exists ) {
new Folder( pngPath ).create();
}
destFile = new File( pngPath + '/' + docName + '_' + iteration.toString() );
type = ExportType.PNG24;
exportOptions = new ExportOptionsPNG24();
exportOptions.artBoardClipping = true;
exportOptions.transparency = true;
} else if ( 'SVG' == fileType ) {
// create folder if it doesn't exist
var svgPath = destPath + '/SVG/';
if ( false == Folder( svgPath ).exists ) {
new Folder( svgPath ).create();
}
destFile = new File( svgPath + '/' + docName + '_' + iteration.toString() );
type = ExportType.SVG;
exportOptions = new ExportOptionsSVG();
exportOptions.preserveEditability = false;
exportOptions.embedRasterImages = true;
exportOptions.embedAllFonts = false;
exportOptions.encoding = SVGDocumentEncoding.UTF8;
exportOptions.fontType = SVGFontType.OUTLINEFONT;
}
// export
doc.exportFile( destFile, type, exportOptions );
}
Ändern Sie das angle
und iterations
in das, was Sie brauchen.
Ändern Sie layerToRotate
den Namen der Ebene, die Sie drehen müssen.
Wechseln Sie destFolder
zu einem Ordnernamen, in dem die Dateien gespeichert werden sollen, der am selben Ort erstellt wird, an dem Ihre Datei gespeichert wird (oder in Ihrem Home-Verzeichnis).
Das Skript exportiert in PNG und SVG in ihre eigenen Ordner. Sie können weitere Dateitypen hinzufügen, indem Sie type
und exportOptions
in exportFile()
etwas anderes ändern.
Die Drehung beginnt in der Mitte aller Objekte auf der Ebene, also sollten Sie ein unsichtbares Rechteck mittig auf der Zeichenfläche (oder wo immer Sie drehen möchten) über Ihrem Pfeil zeichnen und alles gruppieren, wie ich es hier habe:
Führen Sie das Skript aus und Sie sollten so etwas erhalten:
Beachten Sie, dass dies alles auf CS6 erfolgt; Ich weiß nicht, ob sich etwas geändert hat und kann es nicht auf neueren Versionen testen.
svg
und png
so aktualisiert haben, um beide zu exportierenObject
→ Transform
→ Transform Each
, und drehen und verschieben Sie sie nach Bedarf. Ich habe in diesem Beispiel 5º und 20 Pixel verwendet. Klicken Sie hier, Copy
um eine neue Kopie zu übersetzen.⌘D
71 Mal, um die transformierten Duplikate zu erstellen.A
um das Direktauswahl-Werkzeug auszuwählen.Select
→ Same
→ Fill Color
, um alle Begrenzungsrahmenobjekte auszuwählen.Object
→ Transform
→ Transform Each
, und verschieben Sie nach Bedarf. Klicken Sie hier, Copy
um eine neue Kopie zu übersetzen.⌘D
71 Mal, um die transformierten Duplikate zu erstellen.Jetzt haben Sie die Grafik, Sie können Slices oder Zeichenflächen verwenden, um sie nach Bedarf zu exportieren.
Westseite
jskidd3