[FIXED] Breite und Bildhöhe erhalten, ohne es in PS – CS6 -Skript zu öffnen müssen

Ausgabe

Ich habe mich bemüht, die Antwort in der Dokumentation ( 1 , 2 ) zu suchen, aber ich konnte niemanden finden.

Bedenken Sie, dass wir eine Reihe von Dateien aus bestimmten Ordnern auf der Festplatte haben. Wir möchten diese Dateien in diesem Array in Abhängigkeit von den Abmessungen seiner Dateien filtern.
Das heißt, filtern Sie Bilder, deren beide Seiten (Breite oder Höhe) gleichzeitig höher als ein bestimmter Wert und niedriger als ein bestimmter Wert sind.

Natürlich können wir jede Datei in PS als öffnen Documentund jede nach Eigenschaft prüfen app.activeDocument.widthoder app.activeDocument.heightdie höchste auswählen und abgleichen. Aber es ist extrem ineffizient , besonders wenn wir Hunderte von Dateien haben, aber nur wenige von ihnen die Bedingungen erfüllen.

Meine Frage ist also:
Gibt es eine Möglichkeit, das Bild zu überprüfen widthund heightzu öffnen?


Wenn dies möglich ist, ohne dass Software von Drittanbietern installiert werden muss, ist das großartig.


Wenn nicht, wäre es toll, dass Sie es nicht manuell installieren müssen (eine eigenständige Version).

Auch wenn die oben genannten Bedingungen nicht erfüllt sind, ist jede Lösung besser als keine.

Code:

var sourceFolder = Folder.selectDialog("Select folder with files to process");

var LowestValueOfSides = 50; // Any arbitrary value

var HighestValueOfSides = 100; // Any arbitrary value

var FilesToProcess = getFilesToProcess(sourceFolder, LowestValueOfSides, HighestValueOfSides);

alert(FilesToProcess);

function getFilesToProcess(sourceFolder, LowestValueOfSides, HighestValueOfSides) {

    sourceFilesUnfiltered = sourceFolder.getFiles();
    var properFilesExtPSfiles = /.(jpg|tif|psd|bmp|gif|png)$/;

    var sourceFilesFilteredPSD = filteringSourceFilesByExtensions(sourceFilesUnfiltered, properFilesExtPSfiles);

    var sourceFilesFilteredByRes = filteringSourceFilesByRes(sourceFilesFilteredPSD, LowestValueOfSides, HighestValueOfSides);

    return sourceFilesFilteredByRes;
}

function filteringSourceFilesByExtensions(sourceFilesUnfiltered, properFilesExtPSfiles) {

    var sourceFilesFiltered = new Array;

    for (var i = 0; i < sourceFilesUnfiltered.length; i++) { 
        if (sourceFilesUnfiltered[i] instanceof File) {

            var sourceFilePathString = sourceFilesUnfiltered[i].toString();

            var sourceFileToMatch = decodeURIComponent(sourceFilePathString);

            if (sourceFileToMatch.match(properFilesExtPSfiles)) {// decodeURIComponent(), to avoid problem when you have special signs in source files

                sourceFilesFiltered.push( File(sourceFilePathString) );
            } 
        } 
    }

    return sourceFilesFiltered;
}

function filteringSourceFilesByRes(sourceFilesFilteredPSD, LowestValueOfSides, HighestValueOfSides) {

    var sourceFilesFilteredByRes = new Array;

    for (var i = 0; i < sourceFilesFilteredPSD.length; i++) {

        var longestSide = getLongestSideValue(sourceFilesFilteredPSD[i]); //   <====== this is function which I have problem

        if ( (longestSide >= LowestValueOfSides) && (longestSide <= HighestValueOfSides)) {
            sourceFilesFilteredByRes.push(sourceFilesFilteredPSD[i]);
        }
    }

    return sourceFilesFilteredByRes;
}

function getLongestSideValue(File) { //   <====== this is function which I have problem

    var FileWidth // <===== I need this value
    var FileHeight // <===== I need this value

    var longestSideValue = Math.max(FileWidth, FileHeight);

    return longestSideValue;
}

Danke im Voraus.

Lösung

Sie sind sich nicht sicher, nach welcher Art von Antwort Sie suchen, da Sie anscheinend Javascript schreiben möchten, aber nicht möchten, dass Photoshop Ihre Bilder öffnet. Daher wollte ich Ihnen raten, dass Sie ImageMagick verwenden können , um die Breite und Höhe aller Ihrer JPEG -Dateien abzurufen /PNG-Bilder einfach genug im Terminal (Eingabeaufforderung) wie folgt:

magick identify -format "%hx%w - %f\n" *.jpg *.png
1936x2592 - iphone.jpg
100x100 - lime.jpg
600x600 - out.jpg
400x400 - paddington.jpg
100x100 - red.jpg
1936x2592 - result-fft.jpg
50x50 - result.jpg
178x178 - 1.png
178x178 - 2.png

Beachten Sie, dass PSD- und TIFF-Dateien oft mehrere Ebenen haben, daher möchten Sie möglicherweise die Ebenennummer für diese Typen hinzufügen:

magick identify -format "%hx%w - %f[%s]\n" *psd *tif
768x1024 - a.psd[0]
768x1024 - a.psd[1]
248x1280 - a.tif[0]


Beantwortet von –
Mark Setchell


Antwort geprüft von –
Clifford M. (FixError Volunteer)

0 Shares:
Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like