Créer un fichier au format Photoshop (.psd) avec python

screen.png

Créez un fichier PSD à l'aide d'une bibliothèque appelée pytoshop. J'ai trouvé pas mal d'autres choses pour lire le fichier psd une fois avec pytoshop et le traiter, mais je ne pouvais pas le trouver pour le créer à partir de zéro, alors j'ai regardé le document officiel et l'ai recherché pendant le débogage.

Fondamentalement, c'est comme composer une couche avec des données d'image OpenCV (tableau numpy) qui sont courantes en Python et l'écrire.

Installation des packages requis

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

scénario

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():
    #Image pour couche
    test_img = cv2.imread("test1.tif")
    #
    #Créer un fichier PSD vierge
    #
    psd = pytoshop.core.PsdFile(num_channels=3, height=test_img.shape[0], width=test_img.shape[1])
    #Faire 255 images remplies(Pour la transparence)
    max_canvas = np.full(test_img.shape[:2], 255, dtype=np.uint8)
    #
    #Faire un calque
    #
    #Faites autant de couches que nécessaire
    #Transparence np.ndarray([], dtype=np.uint8)
    #255 est opaque, 0 est transparent et vous pouvez créer un calque avec transparence en définissant une image de masque en niveaux de gris.
    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},  #Image RVB
                                   top=0, bottom=test_img.shape[0], left=0, right=test_img.shape[1],  #position
                                   name="layer 1",  #Nom
                                   opacity=255,  #Opacité du calque
                                   )
    psd.layer_and_mask_info.layer_info.layer_records.append(new_layer)
    #
    #Exportation
    #
    with open("output.psd", 'wb') as fd2:
        psd.write(fd2)
    return


if __name__ == '__main__':
    main()

Recommended Posts

Créer un fichier au format Photoshop (.psd) avec python
Créer un répertoire avec python
[Python] Créez un fichier de distribution pour le programme Tkinter avec cx_Freeze
Créer un fichier CAO 2D ".dxf" avec python [ezdxf]
Créer un fichier binaire en Python
Créer un téléchargeur de fichiers avec Django
[Python] Créez un écran de spécification de chemin de fichier et de dossier avec tkinter
Créer un décorateur de fonction Python avec Class
Créer un fichier power simple avec Python
Créez une image factice avec Python + PIL.
[Python] Créez un environnement virtuel avec Anaconda
Créons un groupe gratuit avec Python
Créez rapidement un fichier Excel avec Python #python
Créer un gros fichier texte avec shellscript
Créer une machine virtuelle avec un fichier YAML (KVM)
Créez diverses vidéos Photoshop avec Python + OpenCV ③ Créez diverses vidéos Photoshop
Créer un fichier Excel avec Python + matrice de similarité
Créer un compteur de fréquence de mots avec Python 3.4
Créer un fichier deb à partir d'un package python
[GPS] Créer un fichier kml avec Python
J'ai créé un fichier de configuration avec Python
[ROS2] Comment lire un fichier bag avec le lancement au format python
Créer un cadre avec un arrière-plan transparent avec tkinter [Python]
Comment lire un fichier CSV avec Python 2/3
Créer un fichier GIF en utilisant Pillow en Python
Lire et formater des fichiers csv mélangés avec des tabulations de virgule avec des pandas Python
Créer un module Python
Créer un fichier exécutable GUI créé avec tkinter
Créer un LINE BOT avec Minette pour Python
Comment créer un fichier JSON en Python
Créer un fichier PDF avec une taille de page aléatoire
Créer un environnement virtuel avec conda avec Python
Créer une page qui se charge indéfiniment avec python
[Note] Créez une classe de fuseau horaire sur une ligne avec python
Vous pouvez facilement créer une interface graphique même avec Python
Créer un environnement de construction python3 avec Sublime Text3
Créer une barre de couleurs avec Python + Qt (PySide)
Étapes pour créer un bot Twitter avec Python
Créer un arbre de décision à partir de 0 avec Python (1. Présentation)
Créer une nouvelle page en confluence avec Python
Créer un widget avec une couleur spécifiée avec Python + Qt (PySide)
Créer un environnement Python
Créez un fichier MIDI en Python en utilisant pretty_midi
Facile à créer une application console Python avec Click
Lire ligne par ligne à partir d'un fichier avec Python
Je veux écrire dans un fichier avec Python
Ouvrir la boîte de dialogue de fichier avec l'interface graphique Python (tkinter.filedialog)
Créer un cylindre avec une sortie de fichier open3d + STL
[Python] Générer ValueObject avec un constructeur complet à l'aide de classes de données
Pourquoi ne pas créer facilement une table élégante avec Python?
Créez un environnement de développement python avec vagrant + ansible + fabric
Créez diverses vidéos Photoshop avec Python + OpenCV ④ Traitez les problèmes
Créer une couche pour AWS Lambda Python dans Docker
Lire le fichier json avec Python, le formater et générer le json
[python] Créez un tableau de dates avec des incréments arbitraires avec np.arange
Créez diverses vidéos Photoshop avec Python + OpenCV ② Créez une image fixe Photoshop
Script Python qui crée un fichier JSON à partir d'un fichier CSV
[Python] Comment créer un histogramme bidimensionnel avec Matplotlib
Exécuter un fichier Python avec une importation relative dans PyCharm