Frage

Ich suche eine Photoshop Aktion zu machen (vielleicht ist dies nicht möglich ist, alle anderen Anwendungsempfehlungen wäre auch hilfreich sein). Ich möchte eine Sammlung von Fotos machen und machen sie eine bestimmte Ration, ex: 4: 3.

So habe ich ein Bild, das 150 Pixel breit und 200 Pixel hoch ist. Was würde Ich mag zufällig ist die Leinwand des Bildes wird 267px breit zu sein, mit dem neuen Bereich mit einer bestimmten Farbe gefüllt.

So gibt es zwei Möglichkeiten, die ich mir vorstellen kann:

1) Photoshop-Aktionen könnten dies tun, aber ich würde auf aktuelle Höhe ziehen, multipliziert mit 1,333333 und setzen Sie dann den Wert in dem Feld Breite der Leinwand Größe ändern. Ist es möglich, berechnete Werte in Photoshop-Aktionen haben?

2) Einige andere Anwendung hat diese Funktion eingebaut.

Jede Hilfe sehr geschätzt.

War es hilfreich?

Lösung

Wow, ich sehe jetzt (nach der Antwort zu schreiben), dass diese vor langer Zeit gefragt wurde. . . Naja. Dieses Skript funktioniert der Trick.

Dieses Photoshop-Skript wird jedes Bild der Leinwand Größe ändern, so dass es ein 4: 5 besitzt Seitenverhältnis. Sie können das Seitenverhältnis durch Ändern arWidth und arHeight angewendet ändern. Die Füllfarbe wird auf die aktuelle Hintergrundfarbe eingestellt werden. Sie könnten eine Aktion eine Datei zu öffnen, wenden Sie dieses Skript erstellen, und schließen Sie die Datei mit einem Batch-Prozess zu tun.

Shutdown Photoshop.
Kopieren Sie diesen Javascript in eine neue Datei mit dem Namen "Resize Canvas.jsx" in Photoshop Presets \ Scripts-Ordner.
Starten Sie Photoshop und in der Datei -. Scripts Menü sollte es erscheinen

#target photoshop

main ();

function main ()
{
    if (app.documents.length < 1)
    {
        alert ("No document open to resize.");
        return;
    }

    // These can be changed to create images with different aspect ratios.
    var arHeight = 4;
    var arWidth = 5;

    // Apply the resize to Photoshop's active (selected) document.
    var doc = app.activeDocument;

    // Get the image size in pixels.
    var pixelWidth = new UnitValue (doc.width, doc.width.type);
    var pixelHeight = new UnitValue (doc.height, doc.height.type);
    pixelWidth.convert ('px');
    pixelHeight.convert ('px');

    // Determine the target aspect ratio and the current aspect ratio of the image.
    var targetAr = arWidth / arHeight;
    var sourceAr = pixelWidth / pixelHeight;

    // Start by setting the current dimensions.
    var resizedWidth = pixelWidth;
    var resizedHeight = pixelHeight;

    // The source image aspect ratio determines which dimension, if any, needs to be changed.
    if (sourceAr < targetAr)
        resizedWidth = (arWidth * pixelHeight) / arHeight;
    else
        resizedHeight = (arHeight * pixelWidth) / arWidth;

    // Apply the change to the image.
    doc.resizeCanvas (resizedWidth, resizedHeight, AnchorPosition.MIDDLECENTER);
}

Andere Tipps

Was Sprachen kennen Sie? ImageMagick hat Kommandozeilen-Tools, die dies tun können, aber Sie müssen eine Skriptsprache wissen, um die Werte zu erhalten und die neuen zu berechnen.

Für .NET mein Unternehmen das Produkt, DotImage Foto , ist kostenlos und kann diese (Notwendigkeit tun weiß, C # oder VB.NET)

die akzeptierte Antwort von @ user268911 möglicherweise nicht für Sie, wenn das Quellbild unterschiedliche Pixel / Zoll hat als 72. Da die UnitValue.convert richtig funktionieren nur mit 72 Pixel / Zoll arbeitet. Um sicherzustellen, dass die Umwandlung für je Pixel korrekt ist / Zoll Wert, Set Baseunit Eigenschaft wie folgt:

 ...
 var pixelWidth = new UnitValue (doc.width, doc.width.type);
 pixelWidth.baseUnit = UnitValue (doc.width.baseUnit, "in");
 var pixelHeight = new UnitValue (doc.height, doc.height.type);
 pixelHeight.baseUnit = UnitValue (doc.height.baseUnit, "in");
 ...

Für weitere Informationen über die Umwandlung siehe „Konvertieren von Pixel und Prozentwerte“ des Adobe JavaScript tools Guide .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top