อ่าน 5 นาที
รูปแบบภาพไอคอน Apple
ไฟล์ ภาพไอคอน Apple (.icns) เป็น รูปแบบ ไฟล์ไอคอน ที่ใช้ใน ระบบปฏิบัติการ macOS ของ Apple Inc.
รูปแบบภาพไอคอน Apple
| ไอคอนรูปแอปเปิล | |
|---|---|
| นามสกุลไฟล์ | .icns |
| สื่อประเภทอินเทอร์เน็ต | ภาพ/x-icns |
| รหัสประเภท | ไอซีเอ็นเอส |
| ตัวระบุประเภทมาตรฐาน (UTI) | com.apple.icns |
| เลขมหัศจรรย์ | 69 63 6e 73 |
| พัฒนาโดย | บริษัท แอปเปิล อิงค์ |
| ประเภทของรูปแบบ | รูปแบบไฟล์ไอคอน |
ไฟล์ภาพไอคอน Apple (.icns) เป็น รูปแบบ ไฟล์ไอคอนที่ใช้ในระบบปฏิบัติการ macOSของApple Inc.รองรับไอคอนขนาด 16 × 16, 32 × 32, 48 × 48, 128 × 128, 256 × 256, 512 × 512 พอยต์ ที่มาตราส่วน 1x และ 2x พร้อมช่องอัลฟา1 บิตและ8 บิตและสถานะภาพหลายแบบ (ตัวอย่างเช่น โฟลเดอร์เปิดและปิด) ไอคอนขนาดคงที่เหล่านี้สามารถปรับขนาดได้โดยระบบปฏิบัติการและแสดงผลในขนาดใดก็ได้ระหว่างกลาง
ตั้งแต่macOS 11 เป็นต้น ไป แคตตาล็อกสินทรัพย์เป็นรูปแบบไฟล์ที่นิยมใช้สำหรับไอคอนแบบกำหนดเองของ macOS [ 1 ]
โครงสร้างไฟล์
รูปแบบไฟล์ประกอบด้วยส่วนหัวขนาด 8 ไบต์ ตามด้วยไอคอนจำนวนเท่าใดก็ได้
ส่วนหัว
| ออฟเซ็ต | ขนาด | วัตถุประสงค์ |
|---|---|---|
| 0 | 4 | ค่าเวทมนตร์ต้องเป็น "icns" (0x69, 0x63, 0x6e, 0x73) |
| 4 | 4 | ความยาวของไฟล์ (หน่วยเป็นไบต์ โดยเริ่มจากบิตที่มีค่ามากที่สุดก่อน) |
ข้อมูลไอคอน
| ออฟเซ็ต | ขนาด | วัตถุประสงค์ |
|---|---|---|
| 0 | 4 | ประเภทไอคอน ดู OSType ด้านล่าง |
| 4 | 4 | ความยาวของข้อมูลเป็นไบต์ (รวมถึงชนิดและความยาว) โดยเริ่มจากบิตที่มีค่ามากที่สุดก่อน |
| 8 | ตัวแปร | ข้อมูลไอคอน |
ประเภทไอคอน
| ประเภทระบบปฏิบัติการ | ความยาว (ไบต์) | ขนาด (พิกเซล) | เวอร์ชันระบบปฏิบัติการที่รองรับ | คำอธิบาย |
|---|---|---|---|---|
| ไอคอน | 128 | 32×32 | 1.0 | ไอคอนโมโน 1 บิต |
| ICN# | 256 | 32×32 | 6.0 | ไอคอนขาวดำ 1 บิต พร้อมมาสก์ 1 บิต |
| ไอซีเอ็ม# | 48 | 16×12 | 6.0 | ไอคอนขาวดำ 1 บิต พร้อมมาสก์ 1 บิต |
| ไอซีเอ็ม4 | 96 | 16×12 | 7.0 | ไอคอน 4 บิต |
| ไอซีเอ็ม8 | 192 | 16×12 | 7.0 | ไอคอน 8 บิต |
| ics# | 64 | 16×16 | 6.0 | ไอคอนขาวดำ 1 บิต พร้อมมาสก์ 1 บิต |
| ไอซีเอส4 | 128 | 16×16 | 7.0 | ไอคอน 4 บิต |
| ics8 | 256 | 16×16 | 7.0 | ไอคอน 8 บิต |
| is32 | แตกต่างกัน1 (768) | 16×16 | 8.5 | ไอคอน RGB 24 บิต |
| s8mk | 256 | 16×16 | 8.5 | หน้ากาก 8 บิต |
| ไอซีแอล4 | 512 | 32×32 | 7.0 | ไอคอน 4 บิต |
| ไอซีแอล8 | 1024 | 32×32 | 7.0 | ไอคอน 8 บิต |
| il32 | แตกต่างกัน1 (3072) | 32×32 | 8.5 | ไอคอน RGB 24 บิต |
| l8mk | 1024 | 32×32 | 8.5 | หน้ากาก 8 บิต |
| ich# | 576 | 48×48 | 8.5 | ไอคอนขาวดำ 1 บิต พร้อมมาสก์ 1 บิต |
| ich4 | 1152 | 48×48 | 8.5 | ไอคอน 4 บิต |
| ich8 | 2304 | 48×48 | 8.5 | ไอคอน 8 บิต |
| ไอเอช32 | แตกต่างกัน1 (6912) | 48×48 | 8.5 | ไอคอน RGB 24 บิต |
| h8mk | 2304 | 48×48 | 8.5 | หน้ากาก 8 บิต |
| it32 | แปรผัน1 (49152 + 4) 2 | 128×128 | 10.0 | ไอคอน RGB 24 บิต |
| ที8เอ็มเค | 16384 | 128×128 | 10.0 | หน้ากาก 8 บิต |
| ไอซีพี4 | แตกต่างกันไป | 16x16 | 10.7 | รูปแบบ JPEG 2000 †หรือPNG †หรือไอคอน RGB 24 บิต[ 2 ] |
| ไอซีพี5 | แตกต่างกันไป | 32x32 | 10.7 | รูปแบบ JPEG 2000 †หรือPNG †หรือไอคอน RGB 24 บิต[ 2 ] |
| ไอซีพี6 | แตกต่างกันไป | 48x48 | 10.7 | รูปแบบ JPEG 2000 †หรือPNG † |
| ic07 | แตกต่างกันไป | 128x128 | 10.7 | ไฟล์ JPEG 2000หรือPNG |
| ic08 | แตกต่างกันไป | 256x256 | 10.5 | ไฟล์ JPEG 2000หรือPNG |
| ic09 | แตกต่างกันไป | 512x512 | 10.5 | ไฟล์ JPEG 2000หรือPNG |
| ไอซี10 | แตกต่างกันไป | 1024x1024 | 10.7 | ไฟล์ JPEG 2000หรือPNG (ขนาด 512x512 พิกเซล กำลังขยาย 2 เท่า สำหรับหน้าจอเรตินา ในเวอร์ชัน 10.8) |
| ไอซี11 | แตกต่างกันไป | 32x32 | 10.8 | ไฟล์ JPEG 2000หรือPNG (ขนาด 16x16 พิกเซล กำลังขยาย 2 เท่า สำหรับจอเรตินา) |
| ไอซี12 | แตกต่างกันไป | 64x64 | 10.8 | ไฟล์ JPEG 2000หรือPNG (ขนาด 32x32 พิกเซล กำลังขยาย 2 เท่า สำหรับจอเรตินา) |
| ไอซี13 | แตกต่างกันไป | 256x256 | 10.8 | ไฟล์ JPEG 2000หรือPNG (128x128 พิกเซล @2x "เรตินา") |
| ไอซี14 | แตกต่างกันไป | 512x512 | 10.8 | ไฟล์ JPEG 2000หรือPNG (256x256 พิกเซล @2x "เรตินา") |
| ic04 | แตกต่างกัน1 (1024) | 16x16 | รูปแบบ ARGB หรือJPEG 2000 †หรือPNG † | |
| ic05 | แตกต่างกัน1 (4096) | 32x32 | รูปแบบ ARGB หรือJPEG 2000 †หรือPNG † (16x16@2x "เรตินา") | |
| ไอซีเอสบี | แตกต่างกัน1 (1296) | 18x18 | รูปแบบ ARGB หรือJPEG 2000 †หรือPNG † | |
| icsB | แตกต่างกันไป | 36x36 | ไฟล์ JPEG 2000หรือPNG (ขนาด 18x18 พิกเซล ขยาย 2 เท่า สำหรับจอเรตินา) | |
| สบี24 | แตกต่างกันไป | 24x24 | ไฟล์ JPEG 2000หรือPNG | |
| สบี24 | แตกต่างกันไป | 48x48 | ไฟล์ JPEG 2000หรือPNG (ขนาด 24x24 พิกเซล ขยาย 2 เท่า สำหรับจอเรตินา) |
- 1.ค่าภายในวงเล็บคือความยาวก่อนการบีบอัดสำหรับไอคอน ARGB และ RGB 24 บิต
- 2. ข้อมูล it32จะเริ่มต้นด้วยส่วนหัวที่มีไบต์ศูนย์สี่ไบต์เสมอ (ทดสอบกับไฟล์ icns ทั้งหมดใน macOS 10.15.7 และ macOS 11) ไม่ทราบการใช้งาน ไบต์ศูนย์สี่ไบต์นี้สามารถเป็นค่าใดก็ได้และจะถูกละเลยโดยไม่มีการแจ้งเตือน
- †.รูปแบบเหล่านี้รองรับในไฟล์ icns แบบสแตนด์อโลน แต่จะไม่แสดงผลอย่างถูกต้องหากใช้เป็นไอคอนแอปพลิเคชันภายในแพ็กเกจ .app
รูปแบบข้อมูลภาพ
- ไอคอนแบบโมโนที่มีมาสก์อัลฟาสามารถแสดงได้สามสี ได้แก่ สีขาว สีดำ และสีโปร่งใส
- ไอคอนแบบ 4 บิตและ 8 บิตใช้จานสีคงที่ โดยมี 16 สีและ 256 สี ตามลำดับ
- รูปแบบ RGB 24 บิตประกอบด้วยช่องสัญญาณบีบอัดสามช่องที่จัดเรียงอย่างแน่นหนา (ดูการบีบอัด ) ไอคอน it32ต้องเริ่มต้นด้วยส่วนหัวสี่ไบต์ ดูหมายเหตุข้างต้น
- รูปแบบ ARGB ประกอบด้วยค่า ASCII สำหรับ 'ARGB' และช่องสัญญาณบีบอัดทั้งสี่ช่องที่จัดเรียงอย่างแน่นหนา (ดูการบีบอัด )
ความเข้ากันได้
- ช่อง ARGB รองรับไฟล์ในรูปแบบ PNG ด้วย แต่ในทางกลับกัน คุณไม่สามารถใส่ภาพ ARGB ในช่องที่อนุญาตเฉพาะ PNG ได้ (ทดสอบบน macOS 11)
- ภาพ ARGB รองรับเฉพาะ macOS 11 และเวอร์ชันที่ใหม่กว่าเท่านั้น – macOS 10.15.7 ไม่แสดงภาพ ARGB อย่างไรก็ตาม แม้แต่ปุ่ม ARGB ก็สามารถแสดงได้ใน macOS 10.15 หากคุณตั้งค่าภาพ JPEG 2000 หรือ PNG (ดูหมายเหตุเกี่ยวกับการใช้งานในแพ็กเกจแอปด้านบน)
- ไอคอน RGB 24 บิต ( is32 , il32 , ih32 , it32 ) ยังรองรับภาพในรูปแบบ JPEG 2000 และ PNG ด้วย (ทดสอบบน macOS 10.15.7 และ macOS 11)
- ดูเหมือนว่าการรองรับประเภทภาพใหม่ๆ จะถูกเพิ่มเข้ามาทีหลังฟิลด์สำคัญ (ดูสองข้อก่อนหน้า) ดังนั้น เวอร์ชันระบบปฏิบัติการที่รองรับอาจไม่ถูกต้อง หรืออาจมีการปรับเปลี่ยนตามรูปแบบไฟล์
ประเภทอื่นๆ
| ประเภทระบบปฏิบัติการ | คำอธิบาย |
|---|---|
'TOC ' | "สารบัญ" คือรายการประเภทภาพทั้งหมดในไฟล์ พร้อมขนาดของภาพ (เพิ่มเข้ามาในMac OS X 10.7 ) สารบัญจะถูกเขียนออกมาในรูปแบบของตัวระบุ (4 ไบต์) และขนาด (4 ไบต์) แต่ละระเบียนถัดไป (8 ไบต์ต่อระเบียน) จะถูกแมปกับรูปแบบไอคอนที่พบในไฟล์ ข้อมูลจะไม่ถูกรวมอยู่ในขั้นตอนนี้ |
'icnV' | เลขทศนิยมแบบบิ๊กเอนเดียน 4 ไบต์ - เท่ากับหมายเลขเวอร์ชันของโปรแกรม Icon Composer.app ที่สร้างไอคอนนั้น |
'name' | ไม่ทราบการใช้งาน (ไฟล์ที่ทดสอบทั้งหมดใช้ "ไอคอน" [ 3 ]หรือ "เทมเพลต" [ 4 ] ) |
'info' | ข้อมูลไบนารีplistการใช้งานไม่ทราบ (ดูเหมือนว่าจะใช้เฉพาะฟิลด์ชื่อเท่านั้น) |
'sbtp' | ไฟล์ icns "เทมเพลต" ซ้อนกัน การใช้งานไม่ทราบแน่ชัด |
'slct' | ไฟล์ icns ที่ "เลือก" ไว้ภายใน การใช้งานไม่ทราบแน่ชัด |
FD D9 2F A8 | ไฟล์ icns "มืด" แบบซ้อนกัน ช่วยให้สามารถสลับไอคอนอัตโนมัติในโหมดมืด ได้ (เพิ่มเข้ามาในmacOS 10.14 ) หมายเหตุ: เนื้อหาของบันทึกนี้เป็นไฟล์ .icns เต็มรูปแบบที่มีหลายรูปแบบ หากมีการเขียนไบต์ของบันทึก ไปยังดิสก์ ส่วนหัวของไฟล์ icns และขนาดไฟล์ยังคงจำเป็นเพื่อให้เห็นไอคอนโหมดมืดแบบเต็มรูปแบบ |
- สารบัญคือรายการของประเภทข้อมูลทั้งหมดที่มีอยู่ (ชื่อประเภทข้อมูล 4 ไบต์ + ความยาว 4 ไบต์)
- ข้อมูลสำหรับไฟล์ icns ที่ซ้อนกันทั้งหมดจะไม่มีส่วนหัวของไฟล์ icns ดังนั้น หากคุณต้องการบันทึกข้อมูลลงในไฟล์ คุณต้องเพิ่มส่วนหัวของไฟล์ icns เข้าไป ก่อน
ประเภทองค์ประกอบที่ไม่ใช่ PNG / JPEG2000
ประเภทองค์ประกอบที่จัดการกับรูปแบบภาพ ARGB (32 บิต) หรือ RGB (24 บิต) ต้องใช้ส่วนหัวประเภทต่างๆ ก่อนข้อมูลไบนารี ส่วนหัวนี้เป็นส่วนหนึ่งของข้อมูลภาพและไม่ใช่ค่าประเภทองค์ประกอบไอคอนแบบ big endian 4 ไบต์ (เช่น ic04 หรือ ic05) [ 5 ]
องค์ประกอบ ARGB
ภาพ ARGB ต้องมีส่วนข้อมูลไบนารีของภาพนำหน้าด้วยส่วนหัว 'ARGB' ขนาดสี่ไบต์ หลังจากนั้น แทนที่จะเก็บแต่ละพิกเซลพร้อมช่องสัญญาณทั้งสี่ไว้ด้วยกัน (เช่น ARGBARGBARGB) ภาพที่มีสามพิกเซลจะถูกเก็บไว้ในช่องสัญญาณพิกเซลแต่ละช่อง (เช่น AAARRRGGGBBB) นอกจากนี้ แต่ละช่องสัญญาณของข้อมูลพิกเซลจะต้องถูกเข้ารหัสตามที่กล่าวไว้ด้านล่าง
องค์ประกอบ RGB
ภาพ RGB จะมีส่วนข้อมูลไบนารีของภาพนำหน้าด้วยอักขระศูนย์ไบต์สี่ตัวก็ต่อเมื่อประเภทองค์ประกอบเป็น 'it32' เท่านั้น ในกรณีอื่นๆ ไม่จำเป็นต้องมีส่วนหัว ข้อมูลช่องสัญญาณจะถูกแยกเช่นเดียวกับข้อมูลไบนารี ARGB (เช่น RRRGGGBBB แทนที่จะเป็น RGBRGBRGB) แต่ละช่องสัญญาณจะต้องเข้ารหัสตามที่กล่าวไว้ด้านล่างด้วย
องค์ประกอบของหน้ากาก
องค์ประกอบของมาสก์ไม่ได้ถูกเข้ารหัสเหมือนกับข้อมูลช่องสีของภาพ ARGB และ RGB ข้อมูลจะเหมือนกับภาพ ARGB ยกเว้นเพียงข้อมูลช่องอัลฟาเท่านั้น ดังนั้นสำหรับภาพที่มีสองพิกเซล ARGBARGB ข้อมูลมาสก์จะเป็น AA
การบีบอัด
| ค่าตะกั่ว | ไบต์ท้าย | ผลลัพธ์ที่ไม่ได้บีบอัด |
|---|---|---|
| 0...127 | 1...128 | 1...128ไบต์ |
| 128...255 | 1ไบต์ | 3...130สำเนา |
เมื่อเวลาผ่านไป รูปแบบได้รับการปรับปรุงและรองรับการบีบอัดข้อมูลพิกเซลบางส่วน ข้อมูลพิกเซล RGB 24 บิต ( is32 , il32 , ih32 , it32 , icp4 , icp5 ) และ ARGB ( ic04 , ic05 , icsb ) จะถูกบีบอัด (ต่อช่องสัญญาณ) ด้วยรูปแบบที่คล้ายกับPackBits [ 6 ] บางแหล่ง ข้อมูล กล่าวว่าระบบปฏิบัติการรองรับทั้งข้อมูลที่บีบอัดและไม่บีบอัด อย่างไรก็ตาม การสร้างไฟล์ icns ด้วยตนเองโดยใช้ภาพ RGB หรือ ARGB 24 บิตที่ไม่บีบอัดจะไม่แสดงผลอย่างถูกต้อง อย่างน้อยก็ใน macOS เวอร์ชันใหม่กว่า (ทดสอบบน macOS 11)
นี่คือที่เก็บโค้ด Swift บน GitHub ซึ่งดูเหมือนว่าจะผ่านการทดสอบทั้งการเข้ารหัสและการถอดรหัสตามที่อธิบายไว้ที่นี่: ByteRunLengthCoder
รหัสเทียมต่อไปนี้ใช้ในการคลายการบีบอัดข้อมูล:
ในขณะที่มีข้อมูลที่ถูกบีบอัด: อ่านข้อมูลหนึ่งไบต์เป็นจำนวนเต็มบวกที่ไม่มีเครื่องหมาย N ถ้า N < 0x80: แสดงผลไบต์ถัดไป (N + 1) อื่น : แสดงผลไบต์ถัดไป (N - 0x80 + 3) ครั้ง
ตัวอย่าง: 02 01 02 02 80 03 81 04 82 05ควรคลายการบีบอัดเป็น01 02 02 03 03 03 04 04 04 04 05 05 05 05 05
รหัสเทียมต่อไปนี้ใช้ในการบีบอัดข้อมูล:
ฟังก์ชัน Encode(ข้อมูลอินพุต) กำหนดค่า เริ่มต้นให้ กับ เอาต์พุตเป็นอาร์เรย์ว่างตั้งค่าดัชนีเป็น 0 ในขณะที่ดัชนีน้อยกว่าจำนวนข้อมูล ให้เริ่มต้นลำดับด้วยอาร์เรย์ว่างและตั้งค่าจำนวนนับเป็น 0 // ลำดับที่ไม่ซ้ำกันในขณะที่ count ≤ 0x7F และ index <จำนวนข้อมูล ถ้า index + 2 <จำนวนข้อมูลและ data [index] = data [index+1] และ data [index] = data [index+2] ให้หยุดลูป// จุดเริ่มต้นของลำดับที่ซ้ำกันจบเงื่อนไขเพิ่มข้อมูล[ดัชนี] ลงในลำดับ ดัชนีเพิ่มขึ้น จำนวนการเพิ่มขึ้น จบในขณะที่ถ้าลำดับไม่ว่างเปล่า ให้เพิ่ม (จำนวน - 1) ลงในผลลัพธ์ เพิ่มรายการทั้งหมดในลำดับลงในผลลัพธ์ สิ้นสุดเงื่อนไขถ้าดัชนีมากกว่าหรือเท่ากับจำนวนข้อมูล ให้หยุดลูปจบเงื่อนไข// ลำดับการทำซ้ำตั้ง ค่า repeatedByte เป็น data [index] ตั้งค่า count เป็น 0 ในขณะที่ count ≤ 0x7F และ index ≤ data และ data [index] = repeatedByte ดัชนีเพิ่มขึ้น จำนวนการเพิ่มขึ้น จบในขณะที่ถ้าจำนวนไบต์ซ้ำกันมากกว่าหรือเท่ากับ 3 ให้เพิ่ม (0x80 + จำนวนไบต์ซ้ำกัน - 3) ลงในเอาต์พุต และเพิ่มไบต์ซ้ำกันลงใน เอาต์พุต มิฉะนั้น // ถ้า จำนวน ไบต์ซ้ำกันน้อยกว่า 3 ให้เพิ่ม (จำนวนไบต์ซ้ำกัน - 1) ลงในเอาต์พุต ทำซ้ำ (จำนวนไบต์ซ้ำกัน) ครั้ง และเพิ่มไบต์ซ้ำกันลงในเอาต์พุต สิ้นสุดการทำซ้ำ สิ้นสุดเงื่อนไขสิ้นสุดลูปส่งคืนผลลัพธ์ สิ้นสุดฟังก์ชัน
ตัวอย่าง: 01 02 02 03 03 03 04 04 04 04 05 05 05 05 05ควรบีบอัดเป็น02 01 02 02 80 03 81 04 82 05
ปัญหาที่พบ
ตั้งแต่ macOS 11 เป็นต้นไป มีปัญหา/บั๊กบางประการเกี่ยวกับรูปแบบไฟล์:
- การตั้งค่าเป็นis32+ics8หรือih32+ich8จะแสดงไอคอนที่ถูกต้อง แต่การตั้งค่าเป็นil32+icl8จะไม่สนใจมาสก์ความโปร่งใสและแสดงไอคอนโดยไม่มีความโปร่งใส
- ข้อมูล ARGB ที่ถูกบีบอัดจะไม่ถูกตีความอย่างถูกต้อง ค่าสุดท้ายของช่องสีน้ำเงิน (หรือค่าสุดท้ายสุด) จะถูกละเลยและถือว่าเท่ากับเป็นไบต์ศูนย์ทั้งหมด โดยปกติแล้วจะไม่เป็นปัญหา เนื่องจากไอคอนส่วนใหญ่จะมีส่วนโปร่งใสที่มุมล่างขวาอยู่แล้ว อย่างไรก็ตาม อาจกลายเป็นปัญหาได้หากค่าสุดท้ายเป็นไบต์ที่ซ้ำกัน (ดูการบีบอัด ) อาจทำให้พิกเซลมากถึง 130 พิกเซลขาดค่าช่องสีน้ำเงินวิธีแก้ปัญหาคือการเพิ่มไบต์เพิ่มเติมที่ส่วนท้าย ซึ่งจะถูกตีความว่าเป็นอักขระควบคุมโดยไม่มีข้อมูลตามมา คุณสามารถเปรียบเทียบความแตกต่างได้จากสองตัวอย่างนี้:
69636E73 00000024 69633034 0000001C 41524742 FFFFFBFF FF00FB00 FF00FB00 FFFFFBFF69636E73 00000025 69633034 0000001D 41524742 FFFFFBFF FF00FB00 FF00FB00 FFFFFBFF 00
- macOS 10.15.7 (และเวอร์ชันก่อนหน้า) และเวอร์ชันที่ใหม่กว่า มีปัญหาในการแสดงไอคอน PNG และ JPEG 2000 สำหรับคีย์icp4 (16x16), icp5 (32x32) และicp6 (64x64) คีย์เหล่านี้ทำงานได้ดีในไฟล์ icns แบบสแตนด์อโลน แต่หากใช้ในแอปพลิเคชัน ไอคอนจะแสดงผลผิดเพี้ยนไปหมด ให้ใช้รูปแบบ ARGB ใหม่ic04และic05 (macOS 11+) หรือรูปแบบ RGB 24 บิต + alpha mask แบบเก่า ใช้รูปแบบหลังกับคีย์เก่าis32+s8mkและil32+l8mkหรือกับคีย์ใหม่icp4+s8mkและicp5+l8mk (เขียนข้อมูล RGB ลงในฟิลด์ PNG [ 2 ] ) หากใช้ข้อมูลภาพ ARGB โปรดตรวจสอบให้แน่ใจว่าได้จัดเตรียมรูปแบบทางเลือกสำหรับ macOS 10.15 และเวอร์ชันก่อนหน้า ปัญหานี้ตรวจจับได้ยากเป็นพิเศษหากคุณให้ไอคอนทั้งขนาด 16x16 และ 16x16@2x เพราะหากคุณเชื่อมต่อ Mac กับจอภาพที่ไม่ใช่ Retina ไอคอน 16x16 สำหรับจอภาพที่ไม่ใช่ Retina จะถูกใช้งาน และทำให้ไอคอนแสดงผลผิดเพี้ยน ฟิลด์icp6ดูเหมือนจะไม่ถูกใช้ในไอคอนแอปพลิเคชันและสามารถละเลยได้อย่างปลอดภัย นอกจากนี้ หากคุณไม่ได้ให้ไอคอนขนาดเล็กกว่าเลย บั๊กนี้จะปรากฏขึ้นเมื่อระบบปฏิบัติการย่อขนาดไอคอน PNG/JPEG 2000 ขนาดใหญ่ของคุณ ดังนั้นโปรดตรวจสอบให้แน่ใจว่าได้สร้างไอคอนขนาดเล็กกว่าและรวมไว้ด้วย
สนับสนุน
แอปต่างๆ สามารถเปิด*.icnsไฟล์ได้ รวมถึงPreviewและGTK+โดยบางแอปยังมีฟังก์ชันแปลง*.icnsเป็นและจากPNGได้อีกด้วย[ 7 ] [ 8 ] [ 9 ]เครื่องมือ เดิมที่เชี่ยวชาญด้านการสนับสนุนไฟล์ไอคอน ได้แก่Icon Composerและicns Browserจาก Apple, IconBuilderจากThe IconfactoryและCandyBarจากPanic
MacOS มีเครื่องมือบรรทัดคำสั่งในตัวiconutilสำหรับแพ็คและคลาย*.icnsไฟล์[ 10 ]
ดูเพิ่มเติม
ลิงก์ภายนอก
- IconFamily (อัปเดตล่าสุดปี 2013) – คลาส Objective C แบบโอเพนซอร์สสำหรับอ่านและเขียนไฟล์ icns ของ Apple
- osxiconutils (ไม่ได้รับการดูแลรักษาแล้ว) – เครื่องมือบรรทัดคำสั่งสำหรับทำงานกับไฟล์ icns ของ Apple
- icnsutil – ไลบรารี Python สำหรับอ่านและเขียนไฟล์ icns
- icns - ไลบรารี Rust สำหรับอ่านและเขียนไฟล์ icns
- createicns - ไลบรารีภาษาซีสำหรับอ่านและเขียนไฟล์ icns
- icon_records_extractor - ไลบรารีภาษาซีสำหรับแยกเรคอร์ด icns ทั้งหมดออกมาเป็นไอคอนแยกต่างหาก รวมถึงไอคอน icns โหมดมืดด้วย