Domanda

Sto cercando di fare un'azione di Photoshop (forse questo non è possibile, tutti gli altri suggerimenti di impiego sarebbe utile pure). Voglio prendere una raccolta di foto e fare loro una certa razione aspetto, es: 4: 3.

Così ho un'immagine che è 150 pixel di larghezza per 200px alta. Quello che vorrei che accada è di tela dell'immagine è fatto per essere 267px di larghezza, con la nuova area riempita con un determinato colore.

Quindi ci sono due possibilità mi vengono in mente:

1) azioni di Photoshop potrebbe fare questo, ma avrei dovuto tirare altezza corrente, moltiplicare per 1,333,333 mila e poi mettere che valore nella casella larghezza del ridimensionamento tela. E 'possibile aver calcolato i valori in azioni di Photoshop?

2) Qualche altra applicazione ha questa funzione incorporata.

Ogni aiuto è molto apprezzato.

È stato utile?

Soluzione

Wow, vedo ora (dopo aver scritto la risposta) che questo è stato chiesto molto tempo fa. . . Oh bene. Questo script fa il trucco.

Questo script Photoshop ridimensionerà tela di ogni immagine in modo che abbia un rapporto di 4: 5. È possibile cambiare il rapporto di aspetto applicata modificando arWidth e arHeight. Il colore di riempimento verrà impostato il colore di sfondo corrente. Si potrebbe creare un'azione di aprire un file, applicare questo script, quindi chiudere il file per fare un processo batch.

Shutdown Photoshop.
Copia questo javascript in un nuovo file denominato "Resize Canvas.jsx" in di Photoshop Presets \ cartella Scripts.
Avviare Photoshop e nel file -. Menu Script dovrebbe apparire

#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);
}

Altri suggerimenti

Quali lingue conosci? ImageMagick dispone di strumenti da riga di comando che possono fare questo, ma avresti bisogno di conoscere un linguaggio di scripting per ottenere i valori e calcolare i nuovi.

Per .NET, prodotto della mia azienda, DotImage Foto , è gratuito e può fare questo (necessità di so C # o VB.NET)

Ricordate che la risposta accettata da @ user268911 potrebbe non funzionare per voi, se l'immagine di origine è diversa pixel / pollice di 72. Perché il UnitValue.convert funzione funziona correttamente solo con 72 px / pollice. Per essere sicuri che la conversione sia corretta per pixel mai / valore pollici, set di BaseUnit proprietà come segue:

 ...
 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");
 ...

Per maggiori dettagli circa la sede di conversione "Conversione valori di pixel e percentuali" del Strumenti Adobe JavaScript Guida .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top