[FIXED] Eine Möglichkeit, eine externe Liste von Farb -Hex -Codes zu verwenden, um die Ebene des Füllens von Photoshop zu ändern?

Ausgabe

Ich habe eine Liste mit 100 verschiedenen Farb-Hex-Codes. Ich möchte 100 verschiedene PNG-Dateien erstellen, die jeweils eine andere Farbe aus dieser Liste verwenden.

Anscheinend kann ich in Photoshop keine Variablen verwenden, also suche ich nach einem anderen Weg, da ich kein Scripting-Guru bin.

Wenn Skripterstellung der einzige Weg ist, gibt es eine einfache Sprache wie VB, Powershell usw., die Sie nutzen können, anstatt zu versuchen, Javascript usw. zu lernen?

Vielen Dank

Lösung

Vielleicht würde das Erlernen von JavaScript letztendlich einen vereinfachten Ansatz ermöglichen, aber das habe ich getan.

  1. Zuerst habe ich eine CSV-Datei mit den gewünschten Farb-Hex-Codes erstellt:

    Dateiname rot grün blau
    Hintergrund1 255 255 255
  2. Dann habe ich ein PowerShell-Skript erstellt, um eine PNG-Datei für jede Farbe zu generieren:

    # Specify the path of the Excel or csv data file
    $FilePath = "C:\...\BackgroundColors.csv"
    
    # Specify the starting and ending data rows
    $RowStart = 2
    $RowEnd = 101
    
    # Specify the Sheet name
    $SheetName = "BackgroundColors"
    
    # Create an Object Excel.Application using Com interface
    $ObjExcel = New-Object -ComObject Excel.Application
    # Disable the 'visible' property so the document won't open in excel
    $ObjExcel.Visible = $false
    # Open the Excel file and save it in $WorkBook
    $WorkBook = $ObjExcel.Workbooks.Open($FilePath)
    # Load the WorkSheet
    $WorkSheet = $WorkBook.sheets.item($SheetName)
    
    # Set Image file SaveTo location
    $SaveTo ="C:\...\Backgrounds"
    
    # Instatiate Image Com Interface
    Add-Type -AssemblyName System.Drawing
    
    #Loop
    for ($counter = $RowStart; $counter -le $RowEnd; $counter++ )
    {
        # Set Image variable
        $SaveAs = $WorkSheet.Range("A$counter").text
        $Red = $WorkSheet.Range("B$counter").text
        $Green = $WorkSheet.Range("C$counter").text
        $Blue = $WorkSheet.Range("D$counter").text
        $FileName = "$SaveTo\$SaveAs.png"
    
        #Create bitmap
        $bmp = new-object System.Drawing.Bitmap 750,750 
    
        #Create brush with color
        $brush = [System.Drawing.SolidBrush]::New([System.Drawing.Color]::FromArgb(255, $Red, $Green, $Blue))
    
        $graphics = [System.Drawing.Graphics]::FromImage($bmp) 
        $graphics.FillRectangle($brush,0,0,$bmp.Width,$bmp.Height) 
    
        $graphics.Dispose() 
        $bmp.Save($FileName) 
    }
    
    $workbook.Close($false)
    $objExcel.Quit()
    
    # release Com objects
    [System.Runtime.Interopservices.Marshal]::ReleaseComObject($Worksheet) | Out-Null
    [System.Runtime.Interopservices.Marshal]::ReleaseComObject($Workbook) | Out-Null
    [System.Runtime.Interopservices.Marshal]::ReleaseComObject($objExcel) | Out-Null
    
    # Force garbage collection
    [System.GC]::Collect()
    

    Ich verstehe, dass es wahrscheinlich bessere Möglichkeiten gibt, anstatt den Excel-Dateiansatz zu verwenden, aber ich wollte lernen, wie man Excel mit PowerShell nutzt.

  3. Dann habe ich in PhotoShop eine Vorlage mit einer Ebene erstellt, die ich durch jede der von mir erstellten Dateien ersetzen konnte, zusammen mit anderen Dateien, um das gewünschte vollständige Bild zu erstellen:

    Datei > Neu

    Bild > Variablen > Definieren > Pixelersetzung

  4. Ich habe eine weitere CSV-Datei mit den Pfaden zu den von mir erstellten Bilddateien erstellt:

    neuer Dateiname Hintergrundpfad Bildpfad
    NeuerBildname C:\…\Hintergrund1.png C:\…\Bild1.png
  5. Dann habe ich in Photoshop die CSV-Datei als Datensatz importiert:

    Bild > Variablen > Datensätze > Importieren

  6. Dann den Datensatz als Dateien exportiert, wodurch PSD-Dateien erstellt wurden:

    Datei > Exportieren > Datensätze als Dateien

  7. Dann habe ich eine Photoshop-Aktion erstellt, um eine PSD-Datei als PNG-Datei zu speichern:

    Fenster > Aktionen > Neue Aktion erstellen > Aufzeichnen

  8. Dann habe ich die Aktion als Batch gegen alle PSD-Dateien ausgeführt:

    Datei > Automatisieren > Batch > MeineAktionen

Es sind sicherlich mehr Details beteiligt als hier dargestellt, aber dieser Ansatz ermöglichte es mir, die Erstellung der Hintergründe zu automatisieren und sie dann mit anderen Bildern zu kombinieren, um letztendlich schnell eine Vielzahl neuer Bilder zu erstellen. Es war nicht schnell, den gesamten Prozess auszuarbeiten, aber jetzt ist er schnell wiederholbar und kann im Laufe der Zeit mit zusätzlichem Wissen und Fähigkeiten verbessert werden.


Beantwortet von –
konalion


Antwort geprüft von –
Pedro (FixError Volunteer)

0 Shares:
Leave a Reply

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

You May Also Like