ฉันไม่รู้จักวิธีแก้ปัญหาแบบ all-in-one แต่ฉันรู้สองชิ้นที่สามารถนำมารวมกัน:
- icoutilsมี
icotool
ซึ่งสามารถสร้าง / แยกไฟล์. ico
- ImageMagickมี
convert
ซึ่งสามารถแปลงและปรับขนาดไฟล์ให้มีขนาดที่ต้องการ
ดังนั้นสิ่งนี้จะใช้งานได้ (อาจใช้ได้กับไฟล์ที่มีนามสกุล ".png" เท่านั้น):
#!/bin/bash
# Just pass the original .png image as the only parameter to this script.
SOURCE="$1"
BASE=`basename "${SOURCE}" .png`
convert "${SOURCE}" -thumbnail 16x16 "${BASE}_16.png"
convert "${SOURCE}" -thumbnail 32x32 "${BASE}_32.png"
convert "${SOURCE}" -thumbnail 48x48 "${BASE}_48.png"
convert "${SOURCE}" -thumbnail 64x64 "${BASE}_64.png"
icotool -c -o "${BASE}.ico" "${BASE}"_{16,32,48,64}.png
rm -f "${BASE}"_{16,32,48,64}.png
ฉันรู้ว่าน่าเกลียดมาก แต่มันง่ายที่จะเข้าใจและใช้งานได้ (ฉันทดสอบ!) เพียงแค่ระวังเพราะมันจะสร้างไฟล์ชั่วคราวในไดเรกทอรีปัจจุบันแล้วค่อยลบทิ้ง