PSD 파일이란?
PSD, Photoshop Document는 그래픽 디자인 및 개발에 사용되는 Adobe Photoshop의 기본 파일 형식을 나타냅니다. PSD 파일에는 이미지 레이어, 조정 레이어, 레이어 마스크, 주석, 파일 정보, 키워드 및 기타 Photoshop 관련 요소가 포함될 수 있습니다. Photoshop 파일의 기본 확장자는 .PSD이며 최대 높이와 너비는 30,000픽셀이고 길이 제한은 2GB입니다.
PSD 파일 형식 사양
PSD 파일의 데이터는 빅 엔디안 바이트 순서로 저장됩니다. 이것은 Windows 플랫폼에서 읽거나 쓸 때 짧은 정수와 긴 정수를 바꾸는 것을 의미합니다. Photoshop 파일 형식은 크게 다섯 부분으로 나뉩니다. 한 섹션에서 다음 섹션으로 이동하는 데 사용할 수 있는 많은 길이 마커가 있습니다. 길이 마커는 일반적으로 가장 가까운 2 또는 4바이트 간격으로 반올림하기 위해 바이트로 채워집니다. 다섯 가지 주요 부분은 다음과 같습니다.
- 파일 헤더
- 컬러 모드 데이터
- 이미지 리소스
- 레이어 및 마스크 정보
- 이미지 데이터
Photoshop이 전체 섹션을 읽으려고 할 수 있으므로 적합성을 위해 데이터는 섹션의 이러한 모든 필드에 기록되어야 합니다. 또한 파일에 쓰는 동안 건너뛴 필드에 0이 기록됨을 의미합니다. 길이로 구분된 섹션의 길이 필드는 읽기를 중단할 시기를 결정하는 데 사용해야 합니다. 대부분의 경우 길이 필드는 뒤에 오는 레코드가 아닌 바이트 수를 나타냅니다. 파일을 읽을 때 다음 사항을 기억해야 합니다.
- 모든 테이블의 “길이” 열 값은 바이트 단위입니다.
- 유니코드 문자열로 정의된 모든 값은 다음으로 구성됩니다.
- 문자열의 문자 수를 나타내는 4바이트 길이 필드(바이트 아님).
- 유니코드 값의 문자열, 문자당 2바이트.
파일 헤더
파일 헤더에는 이미지의 기본 속성이 포함됩니다.
길이 | 설명 |
---|---|
4 | 서명: 항상 ‘8BPS’와 동일합니다. 서명이 이 값과 일치하지 않으면 파일을 읽으려고 시도하지 마십시오. |
2 | 버전: 항상 1과 같습니다. 버전이 이 값과 일치하지 않으면 파일을 읽으려고 하지 마십시오. (~~PSB~~ 버전은 2입니다.) |
6 | 예약됨: 0이어야 합니다. |
2 | 알파 채널을 포함한 이미지의 채널 수. 지원되는 범위는 1~56입니다. |
4 | 픽셀 단위의 이미지 높이. 지원되는 범위는 1~30,000입니다. |
4 | 픽셀 단위의 이미지 너비. 지원되는 범위는 1~30,000입니다. |
2 | 깊이: 채널당 비트 수. 지원되는 값은 1, 8, 16 및 32입니다. |
2 | 파일의 색상 모드. 지원되는 값은 다음과 같습니다. Bitmap # 0; 그레이스케일 # 1; 색인 번호 2; RGB # 3; CMYK # 4; 다중 채널 # 7; 이중톤 # 8; 실험실 # 9. |
컬러 모드 데이터 섹션
색상 모드 데이터 섹션은 다음과 같이 구성됩니다.
길이 | 설명 |
---|---|
4 | 다음 Color 데이터의 길이 |
변수 | 색상 데이터 |
색상 모드 데이터는 파일 헤더 섹션의 모드 필드에 정의된 색인 색상 및 이중톤에만 사용할 수 있습니다. 다른 모든 모드의 경우 이 섹션은 4바이트 0 값으로 표시됩니다. 인덱스 컬러 이미지의 경우 길이는 768이고 컬러 데이터에는 인터리브되지 않은 순서로 이미지에 대한 컬러 테이블이 포함됩니다. 이중톤 이미지의 경우 색상 데이터에는 이중톤 사양(형식이 문서화되지 않음)이 포함됩니다. Photoshop 파일을 읽는 다른 응용 프로그램은 이중톤 이미지를 회색 이미지로 처리하고 파일을 읽고 쓸 때 이중톤 정보의 내용만 보존할 수 있습니다.
이미지 리소스 섹션
파일의 세 번째 섹션에는 이미지 리소스가 포함되어 있습니다. 길이 필드로 시작하여 일련의 리소스 블록이 뒤따릅니다.
길이 | 설명 |
---|---|
4 | 이미지 리소스 섹션의 길이입니다. 길이는 0일 수 있습니다. |
변수 | 이미지 리소스(이미지 리소스 블록) |
이미지 리소스는 펜 도구 경로와 같은 이미지와 관련된 비픽셀 데이터를 저장하는 데 사용됩니다. Photoshop 초기 버전에서 Macintosh 리소스에 저장된 데이터를 보유하기 때문에 리소스 블록이라고 합니다. 이미지 리소스 블록의 기본 구조는 다음과 같습니다.
길이 | 설명 |
---|---|
4 | 서명: ‘8BIM’ |
2 | 자원의 고유 식별자. 이미지 리소스 ID에는 Photoshop에서 사용하는 리소스 ID 목록이 포함되어 있습니다. |
변수 | 이름: 파스칼 문자열, 크기를 균일하게 만들기 위해 패딩됨(널 이름은 0의 2바이트로 구성됨) |
4 | 뒤에 나오는 리소스 데이터의 실제 크기 |
변수 | 개별 자원 유형에 대한 섹션에 설명된 자원 데이터. 크기를 균일하게 하기 위해 패딩 처리되어 있습니다. |
이미지 리소스는 여러 표준 ID 번호를 사용합니다.
레이어 및 마스크 정보
Photoshop 파일의 네 번째 섹션에는 레이어 수, 레이어의 채널, 혼합 범위, 조정 레이어 키, 효과 레이어 및 마스크 매개변수와 같은 레이어 및 마스크에 대한 정보가 포함되어 있습니다. 레이어나 마스크가 없는 경우 이 섹션은 0으로 된 4바이트 필드로 표시됩니다. 0 값으로 인해 이 섹션을 읽는 동안 섹션 길이에 특별한 주의를 기울여야 합니다. Layer 및 Mask 섹션의 배열은 다음과 같습니다.
길이 | 설명 |
---|---|
4 | 레이어 및 마스크 정보 섹션의 길이입니다. (PSB 길이는 8바이트입니다.) |
변수 | 레이어 정보 |
변수 | 전역 레이어 마스크 정보 |
변수 | 다양한 유형의 데이터를 포함하는 일련의 태그가 지정된 블록. |
레이어 정보
다음 표는 계층 정보의 상위 수준 구성을 보여줍니다.
길이 | 설명 |
---|---|
4 | 2의 배수로 반올림된 레이어 정보 섹션의 길이입니다. (PSB 길이는 8바이트입니다.) |
2 | 레이어 수. 음수인 경우 절대값은 레이어 수이고 첫 번째 알파 채널에는 병합된 결과에 대한 투명도 데이터가 포함됩니다. |
변수 | 각 레이어에 대한 정보. 레이어 레코드는 각 레이어에 대한 이 정보의 구조를 설명합니다. |
변수 | 채널 이미지 데이터. 각 레이어에 대한 하나 이상의 이미지 데이터 레코드를 포함합니다. 레이어는 레이어 정보와 같은 순서입니다. |
이미지 데이터
이미지 픽셀 데이터는 파일의 이미지 데이터 섹션에 포함됩니다. 이미지 데이터 섹션의 데이터 배열은 평면 순서 즉, 먼저 모든 빨간색 데이터, 그 다음 모든 녹색 데이터 등입니다. 각 평면은 패드 바이트 없이 스캔 라인 순서로 저장됩니다. 이미지 데이터 섹션은 형식으로 정렬됩니다. 다음 표와 같이.
길이 | 설명 |
---|---|
2 | 압축 방법: *0 = 원시 이미지 데이터 * 1 = RLE 압축 이미지 데이터는 모든 스캔 라인(행 * 채널)에 대한 바이트 카운트로 시작하며 각 카운트는 2바이트 값으로 저장됩니다. RLE 압축 데이터가 뒤따르며 각 스캔 라인은 별도로 압축됩니다. RLE 압축은 Macintosh ROM 루틴 PackBits 및 TIFF 표준에서 사용하는 것과 동일한 압축 알고리즘입니다. *2 = 예측이 없는 ZIP *3 = 예측이 있는 ZIP. |
변수 | 이미지 데이터. 평면 오더 = RRR GGG BBB 등 |