Dies ist eine Variation einer Reihe früherer Fragen, aber ich scheine eine einzigartige Situation zu haben.
So, ich habe jetzt einen Ordner mit korrekten Bildern. Zum Beispiel:
Eine Gruppenschicht könnte hypothetisch sein:
Dies wurde für das Web exportiert als:
Es gibt Hunderte von Ebenengruppen, und dies scheint die geeignetste Methode zu sein, um mit diesen ähnlichen, aber einzigartigen Bildern umzugehen.
Als Teil der Umstellung auf responsives Design muss dieser Prozess jetzt Bilder mit angepasster Größe erstellen. Zum Beispiel die Layergruppe:
.. muss jetzt in 4 separaten Größen exportiert werden
Meine Frage:
Ist es möglich, diesen Prozess zu automatisieren? Verwenden eines schrittweisen Quasi-Programmierprozesses:
foreach (layer groups) {
1. Enable visibility on a layer group
2. Export for web, using the layer group name
3. Export for web again, but also resize to 500px wide, appending "-500"
4. Export for web again, but also resize to 1000px wide, appending "-1000"
5. Export for web again, but also resize to 1300px wide, appending "-1300"
6. Remove visibility on layer group
}
Selbst wenn ich es nicht könnte foreach
, würden mir die Punkte 1-6 eine Menge Zeit sparen.
Nachdem ich mit Photoshop-Aktionen herumgespielt habe, weiß ich nicht, wie ich auf Elemente wie den Ebenennamen zugreifen kann, was der Sinn der gesamten Übung ist.
Ich bin eigentlich ein Entwickler, also habe ich keine Angst davor, mir in einigen Makros oder Code die Hände schmutzig zu machen, aber ich sehe nicht, wie ich das machen soll. Ich sehe nicht einmal, wie ich an den Code selbst komme ... wenn das überhaupt zugänglich ist!
Wie kann ich ein Spritesheet einfach zusammenbauen? hat ein Skriptbeispiel, das sich (teilweise) mit dem Iterieren durch Ebenen und dem Umschalten der Sichtbarkeit befasst.
Und wie kann man den Export mehrerer PNGs mit unterschiedlichen Größen aus Photoshop automatisieren? hat einen Link in der Antwort von "Justin Putney", der das folgende Snippet enthält, das ein Array von Größen verarbeitet, einen Dateinamen definiert und "für das Web speichert":
Hier ist der direkte Link zu GitHub: https://gist.github.com/appsbynight/3681050 )
// Save icons in PNG using Save for Web.
var sfw = new ExportOptionsSaveForWeb();
sfw.format = SaveDocumentType.PNG;
sfw.PNG8 = false; // use PNG-24
sfw.transparency = true;
doc.info = null; // delete metadata
var icons = [
{"name": "iTunesArtwork@2x", "size":1024},
{"name": "iTunesArtwork", "size":512},
{"name": "Icon", "size":57},
{"name": "Icon@2x", "size":114},
{"name": "Icon-72", "size":72},
{"name": "Icon-72@2x", "size":144},
{"name": "Icon-Small", "size":29},
{"name": "Icon-Small@2x", "size":58},
{"name": "Icon-Small-50", "size":50},
{"name": "Icon-Small-50@2x", "size":100}
];
var icon;
for (i = 0; i < icons.length; i++)
{
icon = icons[i];
doc.resizeImage(icon.size, icon.size, // width, height
null, ResampleMethod.BICUBICSHARPER);
var destFileName = icon.name + ".png";
if ((icon.name == "iTunesArtwork@2x") || (icon.name == "iTunesArtwork"))
{
// iTunesArtwork files don't have an extension
destFileName = icon.name;
}
doc.exportDocument(new File(destFolder + "/" + destFileName), ExportType.SAVEFORWEB, sfw);
doc.activeHistoryState = startState; // undo resize
}
Wenn all dies zu viel ist, werde ich bemerken, dass eine aufgezeichnete Aktion "Für Web speichern" das Ordnerziel speichert, aber beim Stapeln den aktuellen Dateinamen für den Export verwendet.
Wenn Sie einen Satz temporärer Ablagen einrichten, die den fest codierten Ordnern „Für Web speichern“ entsprechen, die in einer Aktion aufgezeichnet wurden: „Größe ändern, Für Web speichern, Größe ändern Für Web speichern, Größe ändern, Für Web speichern, [. ..], zurücksetzen, schließen" und die Aktion für einen ganzen Ordner mit Bildern ausführen, erhalten Sie am Ende eine Sammlung von Ordnern, einen für jede Größe.
Sie können dann OS-Stapeldateien oder andere Programmierungen/Skripts verwenden, um die Dateinamen zu manipulieren und sie in ihren endgültigen Zielordner zu verschieben.
PieBie
elb98rm