Stapeln Sie Bilder mit unscharfem Hintergrund in das Verhältnis ein

Ich muss viele Bilder mit dem gewünschten Effekt auf ein 4:3-Verhältnis skalieren.

Gibt es eine Möglichkeit, dies mit Photoshop-Aktionen zu tun? (Der Hintergrund kann skaliert oder zwei Kopien an die Seiten verschoben werden, beides funktioniert)

Die Schritte, um das gewünschte Ergebnis zu erzielen

Bildnachweis: https://itunes.apple.com/us/app/id603106194

Sollte mit Action machbar sein.
Haben sie alle die gleiche Ausrichtung, sagen wir, Hochformat? Wenn einige die kurze Seite länger als "3" haben, sind Sie bereit, sie gleichmäßig von beiden Seiten zu beschneiden?

Antworten (2)

Vielleicht ist dies nicht die kugelsicherste Methode, aber Sie könnten so etwas tun.

Zeichnen Sie eine Aktion wie diese auf:

  1. Layer > New > Layer from background...
    • (Halten Sie altbeim Klicken gedrückt, damit Sie nichts gefragt wird. Nicht, dass es wirklich wichtig wäre.)
  2. File > Automate > Fit image.... Geben Sie die gewünschte Dokumentenbreite und -höhe an (ich habe 500x375px verwendet).
  3. Layer > Duplicate layer...- Duplizieren: Neu (keine Benennung erforderlich)
  4. Image > Image size...- Klicken Sie auf die Kette, um das Seitenverhältnis freizugeben. Geben Sie die gewünschte Breite des Dokuments ein (ich habe 500 Pixel verwendet).
  5. Select > All
  6. Edit > Copy
  7. File > Close- Schließen ohne speichern.
  8. Image > Canvas size.... Geben Sie ihm die gewünschte Breite (ich habe 500px verwendet)
    • Wenn Sie Canvas sizesowohl Breite als auch Höhe festlegen möchten: Stoppen Sie die Aufzeichnung der Aktion, machen Sie die letzte Größenänderung rückgängig, starten Sie die Aufzeichnung erneut und wenden Sie die Leinwandgröße an. (Da Bild anpassen entweder die Breite oder Höhe auf die von Ihnen angegebene Größe einstellt, zeichnet die Aktion nur einen dieser Werte auf, wenn Sie versuchen, die Größe der Leinwand zu ändern, was möglicherweise nicht wünschenswert ist.)
  9. Edit > Paste
  10. Layer > New > Background from layer
  11. Filter > Blur > Gaussian blur...

Um es dann mit einem Haufen Bilder auszuführen: File > Scripts > Image processor...und geben Sie ihm Ihre Aktion zum Ausführen.

...oderFile > Automate > Batch...


Alternative Aktion, die Kopien des Originalbilds verwendet, sie so ausrichtet, dass sie das Dokument seitlich ausfüllen, und das dann verwischt (etwas anderes Endergebnis und etwas weniger kugelsicher):

  1. Layer > New > Layer from background...
    • (Halten Sie altbeim Klicken gedrückt, damit Sie nichts gefragt wird. Nicht, dass es wirklich wichtig wäre.)
  2. File > Automate > Fit image.... Geben Sie ihm Ihre gewünschte Dokumentenbreite und -höhe.
  3. Image > Canvas size.... Geben Sie ihm die Breite, genau wie zuvor.
    • Wenn Sie Canvas sizesowohl Breite als auch Höhe festlegen möchten: Stoppen Sie die Aufzeichnung der Aktion, machen Sie die letzte Größenänderung rückgängig, starten Sie die Aufzeichnung erneut und wenden Sie die Leinwandgröße an. (Da Bild anpassen entweder die Breite oder Höhe auf die von Ihnen angegebene Größe einstellt, zeichnet die Aktion nur einen dieser Werte auf, wenn Sie versuchen, die Größe der Leinwand zu ändern, was möglicherweise nicht wünschenswert ist.)
  4. Layer > New > Layer via copy- Das ist für die Mitte (warum nicht..)
  5. Layer > New > Layer via copy- Dies ist für die linke Seite
  6. Select > All
  7. Layer > Align layers to selection > Left edges
  8. Layer > New > Layer via copy- Dies ist für die rechte Seite
  9. Select > All
  10. Layer > Align layers to selection > Right edges
  11. Select > Deselect
  12. Layer > Merge down
  13. Layer > Merge down
  14. Layer > New > Background from layer
  15. Filter > Blur > Gaussian blur...

Both actions can be downloaded here

Dies ist eine großartige Antwort! Ich werde Ihre Antwort zur richtigen machen, obwohl ich letzte Nacht einen engen Zeitplan hatte und mit Skripten anstelle von Aktionen umgegangen bin, da ich nicht sicher war, wie ich all dies erreichen und gleichzeitig die Benutzerfreundlichkeit bei verschiedenen Auflösungen aufrechterhalten sollte (dies muss jedoch nur für Hochformatfotos verwendet werden, nicht für Querformat/ oder breiter als 4:3). Danke noch einmal!
Die Antwort wurde so bearbeitet, dass sie die Dehnungsmethode und einen Link zu beiden Aktionen enthält.

So habe ich es mit Drehbüchern gemacht, vielleicht sind nicht viele Leute Fans davon, aber sie haben für mich funktioniert. Überprüfen Sie die Kommentare im Code auf Details.

  1. Um das Skript zu verwenden, kopieren Sie den Code in Notepad (oder einen anderen einfachen Texteditor) und speichern Sie ihn als *.jsx-Datei.
  2. Erstellen Sie in Photoshop eine Aktion, in der Sie zu Datei -> Skripts -> Durchsuchen ... gehen und die zuvor erstellte *.jsx-Datei suchen.
  3. Nächster Datensatz Speichern der Datei und Schließen des Dokuments.

Dann File -> Automate -> Batch... um einen Ordner mit der von Ihnen erstellten Aktion zu durchlaufen.

var doc = app.activeDocument;
var layer = doc.activeLayer;
var group = layer.parent.layers;

// get document width and height
var w = doc.width.toString().replace(' px', '') 
var h = doc.height.toString().replace(' px', '') 

if ( w/h == 4/3 ) { //if the image ratio is exactly 4:3
    //just resize to 1280x960
    doc.resizeImage(1280,960,null,ResampleMethod.BICUBIC);
} else if ( w/h > 4/3 ){ //if the image ratio is wider than 4:3

    //create two layers, one for the blurry background and the other one on top of it
    layer.duplicate()
    layer.duplicate()
    group[1].name = 'bkg';
    group[0].name = 'top';

    //crop to a 4:3 ratio
    var bounds = [ 0, -(w/4*3-h)/2, w, w/4*3-(w/4*3-h)/2];
    doc.crop(bounds);

    //clear the background with the image fitting the canvas
    var black = new SolidColor();  
    black.rgb.red = black.rgb.green = black.rgb.blue = 0;  
    doc.selection.selectAll();  
    doc.selection.fill( black ); 
    doc.selection.clear();

    //scale the background image to fill the canvas
    doc.activeLayer = doc.artLayers.getByName("bkg");
    var scaleFactor = doc.height.toString().replace(' px', '')/h*100
    var userResampleMethod = app.preferences.interpolation;
    app.preferences.interpolation = ResampleMethod.BILINEAR;
    activeDocument.activeLayer.resize(scaleFactor, scaleFactor, AnchorPosition.MIDDLECENTER);
    app.preferences.interpolation = userResampleMethod;

    //resize the document to 1280x960
    doc.resizeImage(1280,960,null,ResampleMethod.BICUBIC);

    //gaussian blur the background by 20px
    gaussianBlur(20);

} else if ( w/h < 4/3 ){ //if the image ratio is taller than 4:3

    //create two layers, one for the blurry background and the other one on top of it
    layer.duplicate()
    layer.duplicate()
    group[1].name = 'bkg';
    group[0].name = 'top';

    //crop to a 4:3 ratio with the image fitting the canvas
    var bounds = [-(h/3*4-w)/2, 0, h/3*4-(h/3*4-w)/2, h];
    doc.crop(bounds);

    //clear the background
    var black = new SolidColor();  
    black.rgb.red = black.rgb.green = black.rgb.blue = 0;  
    doc.selection.selectAll();  
    doc.selection.fill( black ); 
    doc.selection.clear();

    //scale the background image to fill the canvas
    doc.activeLayer = doc.artLayers.getByName("bkg");
    var scaleFactor = doc.width.toString().replace(' px', '')/w*100
    var userResampleMethod = app.preferences.interpolation;
    app.preferences.interpolation = ResampleMethod.BILINEAR;
    activeDocument.activeLayer.resize(scaleFactor, scaleFactor, AnchorPosition.MIDDLECENTER);
    app.preferences.interpolation = userResampleMethod;

    //resize the document to 1280x960
    doc.resizeImage(1280,960,null,ResampleMethod.BICUBIC);

    //gaussian blur the background by 20px
    gaussianBlur(20);

}



function gaussianBlur(amount){  
    var idGsnB = charIDToTypeID( "GsnB" );  
        var desc2 = new ActionDescriptor();  
        var idRds = charIDToTypeID( "Rds " );  
        var idPxl = charIDToTypeID( "#Pxl" );  
        desc2.putUnitDouble( idRds, idPxl, amount );  
    executeAction( idGsnB, desc2, DialogModes.NO );  
}
Ich finde es interessant, dass dies mit einem Skript angegangen wurde. Daran ist nichts auszusetzen. Auf Dauer flexibler. Übrigens können Sie Dokumentabmessungen als Zahlenwert wie folgt erhalten:app.activeDocument.width.value