>  기사  >  웹 프론트엔드  >  ICO 아이콘 파일을 읽고 쓰기 위한 Photoshop 플러그인

ICO 아이콘 파일을 읽고 쓰기 위한 Photoshop 플러그인

高洛峰
高洛峰원래의
2017-02-20 09:57:352259검색

 제가 포토샵용으로 작성한 파일 포맷 플러그인인 IcoFormat으로, 윈도우 아이콘 파일(확장자 ICO, CUR)을 읽고 쓰는 데 사용됩니다. 아이콘 파일 형식용 PS 플러그인은 수년 전에 외국인이 작성한 것이지만, 지금 제공하는 플러그인은 기능이 더 좋아졌고, 외국인이 제공한 플러그인을 대체할 이유가 충분합니다.

외국인 플러그인의 특징은 잘 기억나지 않습니다. 기억상으로는 다음과 같을 것 같습니다. 파일 대화 상자에서 플러그인이 선택되었습니다. PiPL 리소스 작성에 문제가 있기 때문일 수 있습니다. 내 플러그인에는 이 문제가 없습니다.

(2) Foreigner의 플러그인은 여러 이미지가 포함된 파일을 열 때 미리보기가 불가능하지만, 보다 사용자 친화적인 대화상자에서 미리보기 이미지를 제공합니다.

(3) Foreigner 플러그인은 (메모리 내에서) 아이콘의 투명한 부분을 잘 처리하지 못하는데, 제 플러그인을 사용하면 투명 부분을 아주 잘 설정할 수 있습니다.

(4) 외국인 플러그인은 XP 시스템의 다중 이미지 앤티앨리어싱 아이콘을 저장할 수 없지만, 내 플러그인은 앤티앨리어싱 아이콘을 저장하고 자동으로 다른 품질 및 표준의 이미지를 생성할 수 있습니다. (이것이 외국인 플러그인을 교체하는 가장 중요한 이유라고 생각합니다.)

(5) 이미지를 다운그레이드할 때는 옥트리 알고리즘을 사용합니다. 다운그레이드된 이미지의 품질은 IconWorkshop과 같은 소프트웨어에서 사용하는 방식보다 좋습니다.

(6) 내 플러그인은 스크립팅을 인식하며(즉, 플러그인 매개변수가 PS 스크립트 시스템에 저장됨) 런타임 중에 사용자 설정을 기억할 수 있습니다.

(7) 제가 만든 플러그인은 커서(CUR) 파일을 열고 저장할 수 있는데, 외국 플러그인은 안되는 것 같아요. 그리고 앞으로도 PE 파일에서 아이콘을 가져오는 등의 다른 기능을 계속 개발할 수도 있습니다.

다음은 이 플러그인에 대한 간략한 설명과 소개입니다. 이 플러그인에는 정보 대화 상자, 이미지 선택 대화 상자(파일을 열 때), 투명 부분 설정 대화 상자, 이미지 저장 옵션 설정 대화 상자 등 총 4개의 대화 상자가 있습니다. 아래에서 하나씩 보여드리겠습니다.

(1) 이미지 선택 대화 상자

여러 이미지가 포함된 아이콘을 열면 이미지 선택 대화 상자가 나타납니다.

>

여기서 주요 목적은 사용자에게 파일에서 열 이미지를 선택하도록 요청하는 것입니다. "AND MASK 또는 Alhpa를 독립 채널로 추가"는 32 BPP 미만의 아이콘인 경우 AND MASK( 흑백 2색 비트맵(흰색은 투명을 의미)이 PS의 새 채널에 추가됩니다. 32 BPP 아이콘인 경우 PS의 새 채널로 알파 채널이 추가됩니다. "체커보드 그리드 표시 여부"는 대화 상자의 이미지 미리보기용입니다. 체크하면 PS의 콜백 함수가 실제로 그리기 위해 호출되고, 그렇지 않으면 WIN32의 GDI 함수를 통해 그려집니다.  用于读写ICO图标文件的 Photoshop 插件

(2) 화질 선택 대화 상자

파일 저장 시 이미지 모드에 따라 다른 대화 상자가 나타납니다. 현재 영상 모드가 RGB 모드인 경우, 저장할 화질 아이콘을 설정하라는 다음과 같은 대화 상자가 나타납니다. 앤티앨리어싱 아이콘을 선택하면 다른 크기와 색상 품질의 이미지가 파일에 자동으로 추가됩니다. (최종 파일에는 파일 크기와 표준 이미지 크기에 따라 3~12개의 이미지가 포함될 수 있습니다.) 관계), 이 플러그인에서 생성된 앤티앨리어싱 아이콘은 XP 시스템에서 사용되는 아이콘에 대한 MSDN의 요구 사항을 참조하여 완전히 생성되므로 이 플러그인에서 생성된 앤티앨리어싱 아이콘을 Windows 응용 프로그램 프로젝트로 직접 가져올 수 있습니다. VS를 사용합니다. 앤티앨리어싱 아이콘에 대해서는 이전 기사를 참조하세요.

 

다음 확장 모드 옵션은 32BPP 앤티앨리어싱 아이콘에만 유효합니다. 여기서는 32BPP만 이미지를 축소해야 하기 때문입니다. 소위 픽셀 삭제란 픽셀이 겹칠 때 이미지의 특정 픽셀만 찍히는 것을 의미합니다. 선형 보간은 원본 이미지의 4개 픽셀 간에 선형 보간을 수행하는 것을 의미합니다. 원칙적으로 픽셀을 삭제하는 것은 선형 보간보다 작업이 덜 필요하고, 선형 보간이 스케일링 품질도 더 좋을 수 있지만 실제로는 큰 차이를 느끼기 어렵습니다.  用于读写ICO图标文件的 Photoshop 插件

16 BPP를 선택한 경우 저장되는 이미지는 X-5-5-5 분포의 이미지입니다. 4 BPP 또는 8 BPP 이미지를 선택할 때 사용되는 이미지 저하 알고리즘은 (이전 기사에서 소개한) 옥트리 알고리즘입니다. 옥트리 알고리즘은 색상 수가 적을 경우 이미지를 하나의 색상으로 모두 변경할 수 있으므로 흑백 이미지(최소 BPP는 4)로 저장하는 옵션을 제공하지 않았습니다. 아래 그림은 아이콘을 다운그레이드하고 저장한 후의 이미지 품질 효과를 보여줍니다.

  用于读写ICO图标文件的 Photoshop 插件

이 플러그인을 사용하면 PNG 이미지를 앤티앨리어싱 아이콘으로 쉽게 변환할 수 있습니다. 방법은 PS에서 PNG 이미지를 연 다음 ICO 파일로 저장하는 것입니다.

(3) AND MASK 설정 대화 상자

파일 저장 시 이미지가 인덱스 모드인 경우 투명 부분(AND 마스크 부분). 기본 옵션은 PS 문서 자체에서 직접 투명도 정보를 사용하는 것이지만 이 대화 상자에서는 투명도 정보를 설정하는 다른 방법을 선택할 수도 있습니다.

  用于读写ICO图标文件的 Photoshop 插件

  여기에는 드롭다운 상자를 사용하여 전환할 수 있으며 아래에 다양한 입력 인터페이스가 제공될 수 있습니다. 투명 색상을 검정, 흰색, 전경, 배경, 특정 샘플링 지점의 색상, 지정된 RGB 색상 또는 알파 채널(흰색은 투명을 의미함)로 설정하거나 색상표에서 인덱스를 지정할 수 있습니다.

(4) 정보 대화 상자

PS 메뉴에서 볼 수 있습니다: Help-About Plug-in-ICO..., 이 대화 상자는 또한 제가 세심하게 디자인하고 작성했는데 꽤 아름답습니다. 이 대화 상자에서 마우스를 움직이면 내 블로그 URL이 마우스로 피드백되는 것을 볼 수 있습니다. 해당 URL을 클릭하면 해당 URL이 열리는 기본 브라우저를 호출할 수 있습니다. 이는 PS 필터 작성 방법에 대한 이전 튜토리얼에서 소개한 PS에서 제공하는 CallBack Suite를 통해 달성됩니다.

  用于读写ICO图标文件的 Photoshop 插件

  (5) 기타 지침:

이 플러그인은 최근 게시된 일부 블로그에 대한 내 연구를 기반으로 합니다. 이미지 파일 형식 뷰어, AlphaBlend 및 앤티앨리어싱 아이콘, 인덱스 이미지 생성을 위한 옥트리 알고리즘에 이르기까지 이러한 기사를 게시하는 목적은 이 플러그인에 대한 기술을 준비하는 것입니다. 이 플러그인을 개발하려면 ICO 파일 형식, PS SDK 등을 연구하는 등 많은 노력이 필요합니다. 참조 자료(예: 옥트리 알고리즘)는 이전 블로그 게시물에서 소개되었으므로 여기서는 생략합니다.

 5.1 파일에 X, Y 해상도가 지정되지 않은 경우 PS의 기본값인 72픽셀/인치를 유지합니다.

 5.2 인덱스 이미지가 열리면 이미지-모드-색상표 메뉴에서 현재 색상표를 볼 수 있습니다. 일부 소프트웨어(예: AcdSee)는 색상표를 실제 색상 수를 가진 이미지로 올바르게 분석할 수 없기 때문에 파일을 저장할 때 색상표는 항상 실제 색상 수가 아닌 16 또는 256으로 설정됩니다.

 5.3 이 플러그인은 다음 사용자에게 특히 적합합니다.

 PS 숙련된 사용자, Windows 아이콘 디자이너, 프로그래머. UI 디자인에 직접 참여하고 싶은 사람, 엔지니어 및 기타 기술 인력(나 같은 사람).

이 플러그인을 사용하면 사용자는 Photoshop의 강력한 이미지 처리 기능을 최대한 활용할 수 있으며 더 이상 VC, VS.NET과 같은 IDE의 제한된 편집 기능의 제한을 받지 않아 더욱 아름다운 이미지를 만들 수 있습니다. Photoshop 아이콘의 도움으로 이미지는 물론 인터넷에 있는 많은 PNG 자료를 프로그램에서 사용되는 아이콘으로 쉽게 변환할 수도 있습니다.

더 많은 분들이 좋아해주시고 이용해주셨으면 좋겠습니다. 의견, 제안 또는 필요한 사항이 있으면 내 블로그에 메시지를 남기거나 내 메일함(메일함 주소는 왼쪽 게시판에 있음)으로 이메일을 보내 주시기 바랍니다.

(6) 마지막으로 플러그인 릴리스 패키지 다운로드 링크:

http://files.cnblogs.com/hoodlum1980/PsPlugIns_V2013.zip

(7) 설치 방법 :

"IcoFormat.8BI" 파일을 포토샵의 파일 형식 플러그인 디렉토리 ①에 복사합니다. 예: C:Program FilesAdobePhotoshop CS 플러그인- 파일 형식으로 PS를 다시 시작하면 됩니다. PS 메뉴에 "Help-About Plug-in-ICO..." 메뉴가 있는지 확인하십시오. 이는 플러그인이 성공적으로 설치되었음을 의미합니다.

 

 (8) 업데이트 기록(BUG 수준: H: 매우 중요; M: 중간; L: 중요하지 않음):

 8.1 M: 32BPP 이하 품질로 저장 그 당시에는 거친 그림자 표시를 피하기 위해 ANDMASK 설정 논리가 조정되었습니다(255 미만의 모든 알파 채널은 투명으로 설정됨). 2010-12-17.

8.2 H: 32BPP 앤티앨리어싱 아이콘을 저장하고 선형 보간을 선택할 때 알파 채널도 선형 보간을 사용하는 버그를 수정했습니다(올바른 방법은 픽셀을 삭제하여 알파 채널이 계속 생성되는 것입니다). 이 버그로 인해 다른 크기의 이미지를 생성할 때 투명해서는 안 되는 픽셀이 실수로 투명하게 만들어질 수 있습니다. 이 BUG는 8.1에서 도입되었다는 점을 언급할 가치가 있습니다. 2010-12-18 2:04:15.

 8.3 L: 다음 BUG를 수정하고, 아이콘에서 인덱스 이미지를 열고, "이미지 투명도 효과 켜기" 옵션을 체크 해제했지만 결과적으로 여전히 가끔 투명도가 적용되는 현상을 수정했습니다. 2010-12-18 3:36:08.

8.4 H: 필터가 PS에서 직접 문서의 투명한 정보를 얻을 수 있도록 플러그인의 PIPL 리소스를 조정했습니다(사용자는 더 이상 추가 채널을 명시적으로 제공할 필요가 없습니다). 선형 보간 코드 중 논리적으로 부정확한 부분을 조정하고 픽셀이 원본 이미지의 투명한 부분(검은색)과 결합되는 것을 방지했습니다. 2010-12-19 0:55:23.

8.5 M: PS 문서의 데이터에서 직접 이미지를 다운그레이드하여 32개의 BPP 아이콘을 생성하는 논리를 조정했습니다(원래 방법은 인덱스 이미지를 생성할 때 가끔 색상이 손실되는 경우가 있었으며 이유는 알 수 없음). 2010-12-19 1:41:08.

8.6 L: 앤티앨리어싱 아이콘을 32 BPP의 단일 이미지로 저장하는 옵션이 추가되었습니다. 2010-12-22 2:05:30.

 8.7 L: 인덱스 이미지 읽기 시 투명도 설정 방식이 기존 방식으로 변경됩니다. 16색 이미지의 경우 투명도가 올바르게 적용되는지 확인할 수 있습니다. 256색 이미지의 경우 이미지에 사용되지 않은 색상을 투명 색상으로 찾아보십시오. 적용된. 이 방법의 가장 큰 단점은 다른 이름으로 저장할 때 16색 인덱스 이미지가 256색 이미지로 업그레이드될 수 있다는 것입니다. 2010-12-23 2:57:17.

8.8 L: 16개 BPP 이미지의 픽셀 값을 읽는 선형 매핑 방법을 약간 조정했습니다(영향 거의 없음). 2010-12-24 18:48.

(9) 감사의 말씀:

공식 포럼에서 제 질문에 답변해 주신 Chris Cox(Adobe 직원)에게 감사드립니다.

 Adobe 포럼의 Photoshop SDK 섹션 URL:

 http://forums.adobe.com/community/photoshop/photoshop_sdk

 (10) 참고자료 :

 10.1 옥트리 알고리즘(주소생략).

 10.2 Photoshop SDK(6.0, CS).

 10.3 ICONPRO(MSDN 기술 문서에 제공된 예).

(11) 이 글에 사용된 용어 소개

11.1 BPP(Bits Per Pixel)

이것이 바로 이미지의 비트 심도(Bit Depth)입니다. . 그 의미는 각 픽셀에 사용되는 비트 수를 설명하는 것입니다(1바이트에는 8비트가 포함됨). 예를 들어 RGB 트루 컬러 비트맵의 경우 각 픽셀은 3바이트로 표시되고 BPP = 24입니다. 흑백 이미지(이진 비트맵)의 비트 심도는 1입니다. 16색 인덱스 이미지의 비트 심도는 4(각 바이트는 2픽셀을 나타냄)이고 256색 인덱스 이미지는 비트 심도가 4입니다. 비트 심도 8(각 바이트는 하나의 픽셀을 나타냄) 일반적으로 비트 심도를 8로 나눈 값은 픽셀당 바이트 수를 나타냅니다.

우리가 자주 언급하는 그레이스케일 이미지는 실제로는 독점 형식이 아니라 각 색상에 대해 R, G, B로 특징지워지는 팔레트를 갖는 특별한 256색 인덱스 이미지입니다. 세 가지 구성 요소는 동일하며 256 팔레트 색상 범위는 (0, 0, 0)부터 (255, 255, 255)까지이므로 이미지 데이터의 값은 여전히 ​​기본적으로 색상 인덱스이지만 그레이스케일의 밝기로도 이해할 수 있습니다.

 11.2 안티앨리어싱(AntiAlias)

 개인적인 번역이라 좀 더 많은 분들의 습관에 맞춰서 안티앨리어싱이라고 부를 수도 있겠습니다. 이는 반투명 픽셀을 사용하여 앨리어싱을 제거하는 기술입니다. 우선, 들쭉날쭉한 느낌이 나는 이유는 디스플레이가 이미지를 표현하기 위해 조밀한 매트릭스 그리드를 사용하기 때문이라는 점을 이해해야 합니다. GDI는 컴퓨터 이미지 알고리즘에 따라 도트 매트릭스 픽셀을 설정합니다(본질적으로 수학적 아날로그 신호를 이산화된 디지털 신호), 이 프리젠테이션 유형의 직선은 약간 계단처럼 들쭉날쭉해 보입니다. 인접한 픽셀의 매끄럽지 않은 돌연변이로 인해 들쭉날쭉한 모양이 생성됩니다.

직선을 렌더링하는 더 복잡한 기술에는 부분적으로 투명한 픽셀과 불투명한 픽셀을 사용해야 합니다. 픽셀은 단색 또는 배경색과 혼합된 색상(선에 대한 근접성에 따라 다름)으로 설정됩니다. 이 렌더링 방법을 앤티앨리어싱이라고 하며 시각적으로 더 매끄럽고 부드러운 직선을 생성합니다.

이 글에 언급된 앤티앨리어싱 아이콘은 32 BPP 이미지를 나타냅니다. 즉, 각 픽셀은 각각 R, G, B, A(알파)를 나타내는 4바이트로 표시되며, 픽셀의 투명도를 설명하는 데 사용되는 일반 RGB 비트맵보다 알파 ​​채널이 하나 더 있습니다. 따라서 픽셀의 반투명도를 지정하여 배경과 부드러운 혼합을 만들 수 있습니다. 즉, 앤티앨리어싱 효과를 얻을 수 있습니다.

 


 ① PS 플러그인 디렉토리는 일반적으로 $(PS INSTALL DIR) 플러그인을 참조합니다. 타사 플러그인 파일(.8B*)이 이 디렉토리에 있는 한 PS는 스캔하고 이 디렉토리에 8B* 파일을 로드해 보십시오. 플러그인 유형은 접미사 이름으로 결정되지 않고 해당 PIPL 속성으로 지정됩니다. 이 디렉터리에서는 플러그인 유형에 따라 해당 하위 디렉터리를 생성할 수 있습니다. 예를 들어 필터(Filter), 파일 형식(File Format) 등이 있지만 파일이 PS의 플러그인 디렉터리에 있는 한 PS는 해당 파일을 로드하려고 시도합니다. 플러그인 디렉토리는 레지스트리에서 다음 위치를 검색하여 얻을 수 있습니다:

 HKEY_LOCAL_MACHINESOFTWAREAdobePhotoshop(버전 번호, 예: 8.0) PluginPath

그러나 중국어 버전의 경우 PS CS의 경우 이 값은 영어 버전 경로가 유지되므로(중국어화되지 않음) 오류가 있으므로 더 간단하고 사용하기 쉬운 플러그인 설치 도구를 제공하는 데 작은 장애물이 됩니다. 영어 버전의 경우 PS 설치 디렉터리 아래의 Plug-Ins 하위 디렉터리로 생각하면 됩니다.

ICO 아이콘 파일을 읽고 쓰기 위한 Photoshop 플러그인에 대한 더 많은 관련 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.