Wyodrębnij warstwy z PSD za pomocą ImageMagick, zachowując układ
Używam ImageMagick do wyodrębniania warstw z PSD, i to je wszystkie dobrze z:
convert image.psd image-%d.png
Ale powstałe obrazy PNG mają różne wymiary, w zależności od rzeczywistej zawartości warstwy. Chciałbym wyodrębnić wszystkie warstwy, ale mieć je wszystkie w tym samym rozmiarze, tak, że mogę łatwo położyć je na sobie później, i mieć wszystko ułożone tak, jak to miało miejsce w oryginalnym PSD.
Jeśli to pomoże to zwizualizować, to jest to, co obecnie dostaję z polecenie powyżej:
+----+ |A | +-+ +-+ | | = |A| + |B| | B| +-+ +-+ +----+
A ja chcę:
+----+ +----+ +----+ |A | |A | | | | | = | | + | | | B| | | | B| +----+ +----+ +----+
Z wynikowymi obrazami mającymi przezroczyste tło, dzięki czemu mogę to zrobić:
+----+ +----+ |A | |A |+ | | = | || | B| | B|| +----+ +----+| +----+
Nie jestem w żaden sposób związany z ImageMagick, więc jeśli jest inne narzędzie (najlepiej wiersza poleceń), które może to osiągnąć, to w porządku.
2 answers
Wpisz to, aby wyodrębnić warstwę numer 2 z pliku PSD:
convert \
<filename>.psd[0] \
<filename>.psd[2] \
\( \
-clone 0 \
-alpha transparent \
\) \
-swap 0 \
+delete \
-coalesce \
-compose src-over \
-composite \
<extracted-filename>.png
Tworzy najpierw przezroczyste płótno o tym samym rozmiarze pliku PSD, a następnie łączy je z warstwą 2 zachowując oryginalny układ (-coalesce
)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-12 00:11:53
Używam tej linii poleceń, aby zrobić to, co opisują:
convert.exe <filename>.psd -set dispose Background -coalesce <outfilename>.png
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-09-14 12:34:42