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.

Author: Thom, 2011-07-06

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)

 7
Author: biondo,
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
 21
Author: killmenow,
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