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 tiffinfo
und 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:
Vielleicht möchten Sie mit dem compress
Parameter experimentieren. Mir ist aufgefallen, dass Ihre Datei unkomprimiert 8,5 MB groß ist, aber 2,4 MB verlustfrei Zip
komprimierte 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)