문제

다층 PSD를 가지고 있으며 하나의 특정 레이어는 비 재실행 텍스트입니다. Bash/Perl/Python/Nothing-Else 프로그램에서 할 수있는 방법을 알아 내려고 노력하고 있습니다.

  1. PSD를로드하십시오
  2. 상기 레이어에서 텍스트를 편집하십시오
  3. 이미지의 모든 레이어를 평평하게합니다
  4. PNG 또는 JPG와 같은 웹 친화적 인 형식으로 저장하십시오

나는 즉시 생각했다 Imagemagick, 그러나 IM을 통해 텍스트 계층을 편집 할 수 있다고 생각하지 않습니다. 처음 두 단계를 다른 프로그래밍 방식으로 달성 할 수 있다면 항상 imagemagick을 사용하여 마지막 두 단계를 수행 할 수 있습니다.

CPAN과 PYPI를 몇 시간 동안 검색하고 검색 한 후에도 여전히 유망한 것을 발견하지 못했습니다. 누구든지 주제에 대한 조언이나 아이디어가 있습니까?

도움이 되었습니까?

해결책

공식적으로 지원되는 사과 스크립트, JavaScript 또는 vbscript를 사용하고 싶지 않다면 Python에서 수행 할 수 있습니다. 이것은 기사에 설명되어 있습니다 파이썬으로 Photoshop 스크립팅, Photoshop의 COM 인터페이스에 의존합니다.

나는 그것을 시도하지 않았으므로 당신에게 효과가없는 경우 : 당신의 텍스트가 보존 된 경우 SVG 로의 전환 그런 다음 원하는 도구로 간단히 교체 할 수 있습니다. 그 후, PNG로 변환하십시오 (예 : inkscape --export-png=...).

다른 팁

김프에서 이미지를 열고 편집하는 것을 고려해 보셨습니까? PSD 지원이 매우 우수하며 여러 언어로 스크립트를 작성할 수 있습니다.

당신이 사용하는 것은 당신의 플랫폼에 부분적으로 의존하는데, Perl 인터페이스는 내가 마지막으로 알고있는 Windows에서 작동하지 않았습니다. 나는 모든 포트에서 체계가 지원된다고 생각합니다.

PSD 내부의 텍스트 변경을 자동화하는 유일한 방법은 Regex 기반 대체를 사용하는 것입니다.

  1. Photoshop, 아마도 흰색 배경과 텍스트 레이어에서 매우 간단한 그림을 만듭니다. 텍스트는 알려진 길이입니다.
  2. 텍스트의 파일을 검색하고 HEX 편집기를 사용하여 텍스트의 길이를 근처에서 검색하십시오 (파일 형식의 일부일 수도 있고 아닐 수도 있음).
  3. 텍스트를 먼저 같은 길이의 문자열로 변경 한 다음 더 짧은/더 긴 것으로 바꾸십시오.
  4. 각 변경 후 Photoshop에서 열면 파일이 손상되었는지 확인하십시오.

이 방법은 실행 가능한 경우 해당 레이어에 알려진 문자열이 포함되어있는 경우에만 작동하며 다른 값으로 대체 할 수 있습니다. 이 컴퓨터에 Photoshop이 없기 때문에 이것이 작동하는지 여부는 전혀 모릅니다. 아마도 당신은 그것을 작동시킬 수 있습니까?

PNG로 변환하는 것은 손실에 있습니다. 교체 스크립트가 파이썬에있는 경우 Python 이미징 라이브러리 (PIL, 그것을 지원하는 것 같습니다), 그러나 그렇지 않으면 전환을하기 위해 Photoshop을 열어야 할 수도 있습니다. 즉, 처음에는 실용적으로 텍스트를 바꾸는 것이 가치가 없을 것입니다.

Photoshop 자체를 사용하여 Ole과 함께 할 수 있습니다. 물론 Photoshop을 설치해야합니다. Win32 :: Python의 Perl 또는 유사한 모듈의 Ole. 보다 http://www.adobe.com/devnet/photoshop/pdfs/photoshopscriptingguide.pdf

Photoshop을 자동화하려면 Photoshop의 자체 스크립팅 시스템을 사용해야합니다. 나는 그 주위에 방법이 있다고 생각하지 않습니다.

문제를 다른 방식으로 살펴보면 Photoshop에서 imagemagick이 편집 할 수있는 PNG와 같은 레이어를 지원하는 다른 형식으로 내보낼 수 있습니까?

node.js를 사용하여 이것을 시도 할 수도 있습니다. 나는 만들었다 PSD 명령 줄 도구

일선 명령 설치 (Nodejs/NPM INDELD INDELSED)

npm install -g psd-cli

그런 다음 터미널에 입력하여 사용할 수 있습니다.

psd myfile.psd -t

다른 노드 스크립트에서 사용하도록 코드를 확인하거나 다른 Bash/Perl/whate 스크립트에서 쉘을 통해 사용할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top