[FIXED] Konvertieren Sie das Multi-Channel-Numpy-Array in Photoshop PSD-Datei

Ausgabe

Ich habe ein numpy Array mit 3 RGB-Kanälen und zwei Alpha-Kanälen. (Ich verwende Python)

Ich möchte es in eine Photoshop-PSD-Datei konvertieren, damit ich später Transformationen in Photoshop auf die kommentierten Alpha-Ebenen anwenden kann.

Ich denke, es ist eine sehr einfache Aufgabe, aber ich habe in den Paketen, die ich beim Googeln gefunden habe, keine Möglichkeit gefunden, dies zu tun.

Ich denke, es sollte etwas in der folgenden Zeile sein:

>> im.shape
(.., .., 4)

psd = PSD()
psd.add_layers_from_numpy(im, names=["R", "G", "B", "alpha-1", "alpha-2")
with open(of, 'wb') as f:
    psd.write(f)

Wenn Sie wissen, wie das geht, lassen Sie es mich bitte wissen. Danke im Voraus!

Lösung

Ich habe Ihre PSD-Datei in Photoshop geöffnet und als TIFF gespeichert. Ich habe dann nachgesehen tiffinfound festgestellt, dass Ihre Datei als RGB mit 3 Ebenen von “Extra-Samples” gespeichert ist :

tiffinfo MULTIPLE_ALPHA.tif

TIFF Directory at offset 0x8 (8)
  Subfile Type: (0 = 0x0)
  Image Width: 1000 Image Length: 1430
  Resolution: 72, 72 pixels/inch
  Bits/Sample: 8
  Compression Scheme: None
  Photometric Interpretation: RGB color                      <--- HERE
  Extra Samples: 3<unspecified, unspecified, unspecified>    <--- HERE
  Orientation: row 0 top, col 0 lhs
  Samples/Pixel: 6
  Rows/Strip: 1430
  Planar Configuration: single image plane
  Software: Adobe Photoshop 21.2 (Macintosh)
  DateTime: 2020:09:08 19:34:38

Sie können das in Python laden mit:

import tifffile
import numpy as np

# Load TIFF saved by Photoshop
im = tifffile.imread('MULTIPLE_ALPHA.tif')

# Check shape
print(im.shape)           # prints (1430, 1000, 6)

# Save with 'tifffile'
tifffile.imwrite('saved.tif', im, photometric='RGB')

tifffileÜberprüfen Sie nun, ob Photoshop das Bild genauso betrachtet und behandelt wie Ihr Original:

Geben Sie hier die Bildbeschreibung ein

Vielleicht möchten Sie mit dem compressParameter experimentieren. Mir ist aufgefallen, dass Ihre Datei unkomprimiert 8,5 MB groß ist, aber 2,4 MB verlustfrei Zipkomprimierte Daten, wenn ich Folgendes verwende:

tifffile.imwrite('saved.tif', im, photometric='RGB', compress=1)

Beachten Sie, dass Sie zum Lesen/Schreiben mit Komprimierung Folgendes installieren müssen imagecodecs:

pip install imagecodecs

Beachten Sie, dass ich nicht behaupte, dass es mit einem PSD-writer-Paket unmöglich ist, ich sage nur, dass ich glaube, dass Sie mit einem TIFF bekommen können, was Sie wollen.

Schlüsselwörter : Bildbearbeitung, Photoshop, PSD, TIFF, Mehrkanal speichern, Mehrschichtig, Mehrbild, Mehrfachalpha, Tifffile, Python


Beantwortet von –
Mark Setchell


Antwort geprüft von –
Katrina (FixError Volunteer)

0 Shares:
Leave a Reply

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

You May Also Like