Erstellen Sie mit Python eine Datei im Photoshop-Format (.psd)

screen.png

Erstellen Sie eine PSD-Datei mit einer Bibliothek namens pytoshop. Ich habe noch einige andere Dinge gefunden, um die psd-Datei einmal mit pytoshop zu lesen und zu verarbeiten, aber ich konnte sie nicht finden, um sie von Grund auf neu zu erstellen. Deshalb habe ich mir das offizielle Dokument angesehen und es beim Debuggen nachgeschlagen.

Im Grunde ist es so, als würde man eine Ebene mit OpenCV-Bilddaten (Numpy-Array) erstellen, die in Python üblich ist, und sie ausschreiben.

Installation der erforderlichen Pakete

pip install numpy scipy opencv-python Pillow six psd-tools3 pytoshop

Skript

main.py


#! env python
# -*- coding: utf-8 -*-

import os
import sys
import cv2
import pytoshop
from pytoshop import layers
import numpy as np
import cv2

def main():
    #Bild für Schicht
    test_img = cv2.imread("test1.tif")
    #
    #Erstellen Sie eine leere PSD-Datei
    #
    psd = pytoshop.core.PsdFile(num_channels=3, height=test_img.shape[0], width=test_img.shape[1])
    #Machen Sie 255 gefüllte Bilder(Für Transparenz)
    max_canvas = np.full(test_img.shape[:2], 255, dtype=np.uint8)
    #
    #Mach eine Ebene
    #
    #Mach so viele Schichten wie du brauchst
    #Transparenz np.ndarray([], dtype=np.uint8)
    #255 ist undurchsichtig, 0 ist transparent, und Sie können eine Ebene mit Transparenz erstellen, indem Sie ein Graustufenmaskenbild festlegen.
    layer_1 = layers.ChannelImageData(image=max_canvas, compression=1)
    # RGB
    layer0 = layers.ChannelImageData(image=test_img[:, :, 2], compression=1)  # R
    layer1 = layers.ChannelImageData(image=test_img[:, :, 1], compression=1)  # G
    layer2 = layers.ChannelImageData(image=test_img[:, :, 0], compression=1)  # B
    new_layer = layers.LayerRecord(channels={-1: layer_1, 0: layer0, 1: layer1, 2: layer2},  #RGB-Bild
                                   top=0, bottom=test_img.shape[0], left=0, right=test_img.shape[1],  #Position
                                   name="layer 1",  #Name
                                   opacity=255,  #Deckkraft der Ebene
                                   )
    psd.layer_and_mask_info.layer_info.layer_records.append(new_layer)
    #
    #Export
    #
    with open("output.psd", 'wb') as fd2:
        psd.write(fd2)
    return


if __name__ == '__main__':
    main()

Recommended Posts

Erstellen Sie mit Python eine Datei im Photoshop-Format (.psd)
Erstellen Sie ein Verzeichnis mit Python
[Python] Erstellen Sie mit cx_Freeze eine Verteilungsdatei für das Tkinter-Programm
Erstellen Sie eine 2D-CAD-Datei ".dxf" mit Python [ezdxf]
Erstellen Sie eine Binärdatei in Python
Erstellen Sie mit Django einen Datei-Uploader
[Python] Erstellen Sie mit tkinter einen Bildschirm zur Datei- und Ordnerpfadspezifikation
Erstellen Sie mit Class einen Python-Funktionsdekorator
Erstellen einer einfachen Power-Datei mit Python
Erstellen Sie mit Python + PIL ein Dummy-Image.
[Python] Erstellen Sie mit Anaconda eine virtuelle Umgebung
Erstellen wir mit Python eine kostenlose Gruppe
Erstellen Sie schnell eine Excel-Datei mit Python #python
Erstellen Sie eine große Textdatei mit Shellscript
VM mit YAML-Datei (KVM) erstellen
Erstellen verschiedener Photoshop-Videos mit Python + OpenCV ③ Erstellen Sie verschiedene Photoshop-Videos
Erstellen Sie eine Excel-Datei mit Python + Ähnlichkeitsmatrix
Erstellen Sie mit Python 3.4 einen Worthäufigkeitszähler
Erstellen Sie eine Deb-Datei aus einem Python-Paket
[GPS] Erstellen Sie eine kml-Datei mit Python
Ich habe mit Python eine Einstellungsdatei erstellt
[ROS2] So spielen Sie eine Bag-Datei mit Start im Python-Format ab
Erstellen Sie mit tkinter [Python] einen Rahmen mit transparentem Hintergrund.
Lesen einer CSV-Datei mit Python 2/3
Erstellen Sie eine GIF-Datei mit Pillow in Python
Lesen und formatieren Sie CSV-Dateien gemischt mit Komma-Registerkarten mit Python-Pandas
Erstellen Sie ein Python-Modul
Erstellen Sie eine mit tkinter erstellte ausführbare GUI-Datei
Erstellen Sie mit Minette für Python einen LINE BOT
So erstellen Sie eine JSON-Datei in Python
Erstellen Sie eine PDF-Datei mit einer zufälligen Seitengröße
Erstellen Sie eine virtuelle Umgebung mit conda in Python
Erstellen Sie eine Seite, die unbegrenzt mit Python geladen wird
[Hinweis] Erstellen Sie mit Python eine einzeilige Zeitzonenklasse
Sie können auch mit Python problemlos eine GUI erstellen
Erstellen Sie mit Sublime Text3 eine Python3-Build-Umgebung
Erstellen Sie eine Farbleiste mit Python + Qt (PySide)
Schritte zum Erstellen eines Twitter-Bots mit Python
Erstellen Sie mit Python einen Entscheidungsbaum von 0 (1. Übersicht)
Erstellen Sie eine neue Seite im Zusammenfluss mit Python
Erstellen Sie mit Python + Qt (PySide) ein farbspezifisches Widget.
Erstellen Sie eine Python-Umgebung
Erstellen Sie eine MIDI-Datei in Python mit pretty_midi
Erstellen Sie einfach eine Python-Konsolenanwendung mit Click
Lesen Sie mit Python Zeile für Zeile aus der Datei
Ich möchte mit Python in eine Datei schreiben
Dateidialog mit Python-GUI öffnen (tkinter.filedialog)
Machen Sie einen Zylinder mit open3d + STL-Dateiausgabe
[Python] Generieren Sie ValueObject mit dem vollständigen Konstruktor mithilfe von Datenklassen
Warum nicht einfach mit Python eine stilvolle Tabelle erstellen?
Erstellen Sie eine Python-Entwicklungsumgebung mit Vagrant + Ansible + Fabric
Erstellen Sie verschiedene Photoshop-Videos mit Python + OpenCV. ④ Beheben Sie Probleme
Erstellen Sie in Docker eine Ebene für AWS Lambda Python
Lesen Sie die json-Datei mit Python, formatieren Sie sie und geben Sie json aus
[Python] Erstellen Sie mit np.arange ein Datumsarray mit beliebigen Inkrementen
Erstellen verschiedener Photoshop-Videos mit Python + OpenCV ② Erstellen Sie Photoshop-Standbilder
Python-Skript, das eine JSON-Datei aus einer CSV-Datei erstellt
[Python] So erstellen Sie mit Matplotlib ein zweidimensionales Histogramm
Führen Sie eine Python-Datei mit relativem Import in PyCharm aus