convert
จาก ImageMagick
เช่น 8-bit 2x3 โทนสีเทา:
printf '\x00\xFF\x88\xFF\x00\xFF' > f
แล้ว:
convert -depth 8 -size 3x2+0 gray:f out.png
คำอธิบายคำสั่ง:
-depth 8
: แต่ละสีมี 8 บิต
-size 2x3+0
: 2x3
รูปภาพ +0
หมายถึงเริ่มต้นที่ offset 0 ในไฟล์ หากมีส่วนหัวเมทาดาทาคุณสามารถข้ามส่วนเหล่านั้นได้ด้วยออฟเซ็ต
gray:f
: ไฟล์อินพุตคือf
และรูปแบบคือgray
ตามที่กำหนดไว้ที่http://www.imagemagick.org/script/formats.phpสัญกรณ์แปลก ๆ นี้ใช้เพราะ ImageMagick มักจะกำหนดรูปแบบจากส่วนขยาย แต่ที่นี่ไม่มีส่วนขยาย .
ปัญหาตอนนี้คือวิธีดูผลลัพธ์ โดยตรงeog
:
eog out.png
ไม่ดีมากเพราะภาพมีขนาดเล็กเกินไปและหากคุณซูมเข้ามาก ๆeog
จะใช้อัลกอริทึมการแสดงผลที่ผสมพิกเซลขึ้นมาซึ่งจะดีกว่าสำหรับรูปภาพส่วนใหญ่ แต่ไม่ใช่ในกรณีของเรา ฉันพบความเป็นไปได้สองประการ:
gimp out.png
. โปรแกรมแก้ไขรูปภาพจะต้องแสดงทุกพิกเซล
convert out.png -scale 300x200 out2.png
. -scale
เป็นสิ่งจำเป็นแทน-resize
เนื่องจากค่าเริ่มต้น-resize
ผสมพิกเซลได้มากeog
ตามค่าเริ่มต้น
เอาท์พุท:
ตัวอย่าง RGB:
printf '\xFF\x00\x00\x00\xFF\x00\x00\x00\xFF' > f
convert -depth 8 -size 3x1+0 rgb:f out.png
ทดสอบบน Ubuntu 16.04 แล้ว ImageMagick 6.8.9