กลับไปหน้าบทความ

อ่าน 5 นาที

รูปแบบภาพไอคอน Apple

ไฟล์ ภาพไอคอน Apple (.icns) เป็น รูปแบบ ไฟล์ไอคอน ที่ใช้ใน ระบบปฏิบัติการ macOS ของ Apple Inc.

รูปแบบภาพไอคอน Apple

( เรียนรู้วิธีและเวลาในการลบข้อความนี้ )

ไอคอนรูปแอปเปิล
ไอคอน ICNS
นามสกุลไฟล์
.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 บิต
ไอซีเอ็ม496 16×12 7.0 ไอคอน 4 บิต
ไอซีเอ็ม8192 16×12 7.0 ไอคอน 8 บิต
ics#64 16×16 6.0 ไอคอนขาวดำ 1 บิต พร้อมมาสก์ 1 บิต
ไอซีเอส4128 16×16 7.0 ไอคอน 4 บิต
ics8256 16×16 7.0 ไอคอน 8 บิต
is32แตกต่างกัน1 (768) 16×16 8.5 ไอคอน RGB 24 บิต
s8mk256 16×16 8.5 หน้ากาก 8 บิต
ไอซีแอล4512 32×32 7.0 ไอคอน 4 บิต
ไอซีแอล81024 32×32 7.0 ไอคอน 8 บิต
il32แตกต่างกัน1 (3072) 32×32 8.5 ไอคอน RGB 24 บิต
l8mk1024 32×32 8.5 หน้ากาก 8 บิต
ich#576 48×48 8.5 ไอคอนขาวดำ 1 บิต พร้อมมาสก์ 1 บิต
ich41152 48×48 8.5 ไอคอน 4 บิต
ich82304 48×48 8.5 ไอคอน 8 บิต
ไอเอช32แตกต่างกัน1 (6912) 48×48 8.5 ไอคอน RGB 24 บิต
h8mk2304 48×48 8.5 หน้ากาก 8 บิต
it32แปรผัน1 (49152 + 4) 2128×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...1271...1281...128ไบต์
128...2551ไบต์ 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 เป็นต้นไป มีปัญหา/บั๊กบางประการเกี่ยวกับรูปแบบไฟล์:

  1. การตั้งค่าเป็นis32+ics8หรือih32+ich8จะแสดงไอคอนที่ถูกต้อง แต่การตั้งค่าเป็นil32+icl8จะไม่สนใจมาสก์ความโปร่งใสและแสดงไอคอนโดยไม่มีความโปร่งใส
  2. ข้อมูล ARGB ที่ถูกบีบอัดจะไม่ถูกตีความอย่างถูกต้อง ค่าสุดท้ายของช่องสีน้ำเงิน (หรือค่าสุดท้ายสุด) จะถูกละเลยและถือว่าเท่ากับเป็นไบต์ศูนย์ทั้งหมด โดยปกติแล้วจะไม่เป็นปัญหา เนื่องจากไอคอนส่วนใหญ่จะมีส่วนโปร่งใสที่มุมล่างขวาอยู่แล้ว อย่างไรก็ตาม อาจกลายเป็นปัญหาได้หากค่าสุดท้ายเป็นไบต์ที่ซ้ำกัน (ดูการบีบอัด ) อาจทำให้พิกเซลมากถึง 130 พิกเซลขาดค่าช่องสีน้ำเงินวิธีแก้ปัญหาคือการเพิ่มไบต์เพิ่มเติมที่ส่วนท้าย ซึ่งจะถูกตีความว่าเป็นอักขระควบคุมโดยไม่มีข้อมูลตามมา คุณสามารถเปรียบเทียบความแตกต่างได้จากสองตัวอย่างนี้:
    • 69636E73 00000024 69633034 0000001C 41524742 FFFFFBFF FF00FB00 FF00FB00 FFFFFBFF
    • 69636E73 00000025 69633034 0000001D 41524742 FFFFFBFF FF00FB00 FF00FB00 FFFFFBFF 00
  3. 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 โหมดมืดด้วย
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Apple_Icon_Image_format&oldid=1346269028 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ รูปแบบภาพไอคอน Apple

ไฟล์ ภาพไอคอน Apple (.icns) เป็น รูปแบบ ไฟล์ไอคอน ที่ใช้ใน ระบบปฏิบัติการ macOS ของ Apple Inc.

โครงสร้างไฟล์

รูปแบบไฟล์ประกอบด้วยส่วนหัวขนาด 8 ไบต์ ตามด้วยไอคอนจำนวนเท่าใดก็ได้

ส่วนหัว

ออฟเซ็ต ขนาด วัตถุประสงค์ 0 4 ค่าเวทมนตร์ต้องเป็น "icns" (0x69, 0x63, 0x6e, 0x73) 4 4 ความยาวของไฟล์ (หน่วยเป็นไบต์ โดยเริ่มจากบิตที่มีค่ามากที่สุดก่อน)

ข้อมูลไอคอน

ออฟเซ็ต ขนาด วัตถุประสงค์ 0 4 ประเภทไอคอน ดู OSType ด้านล่าง 4 4 ความยาวของข้อมูลเป็นไบต์ (รวมถึงชนิดและความยาว) โดยเริ่มจากบิตที่มีค่ามากที่สุดก่อน 8 ตัวแปร ข้อมูลไอคอน