โดยทั่วไป ImageMagick จะใช้รูปแบบเอาต์พุต ประหยัดที่สุด ที่เข้ากันได้กับข้อกำหนดของคุณ ดังนั้น หากภาพที่ป้อนเข้าไม่มีช่องอัลฟ่า (เช่น ความโปร่งใส) ภาพที่ส่งออกก็จะไม่มีความโปร่งใส หากชุดสี 256 สีเพียงพอสำหรับสีในภาพของคุณ มันจะสร้างภาพที่ออกมาเป็นชุดสี หากความลึกของเอาต์พุต 8 บิตเพียงพอสำหรับรูปภาพของคุณ ก็จะไม่รบกวนการสร้างเอาต์พุต 16 บิต และอื่นๆ...
หากคุณต้องการ บังคับ ImageMagick ให้ทำสิ่งที่แตกต่างออกไป คุณมีตัวเลือกมากมาย
หากคุณต้องการ บังคับ สีจริง หรือไฟล์เอาต์พุตแบบพาเลท (จัดทำดัชนี) คุณสามารถทำได้ดังนี้:
convert input.png -type palette output.png # Force palettised (indexed) output
convert input.png -type truecolor output.png # Force true colour output
หากคุณต้องการ บังคับ 8 บิตหรือ 16 บิต คุณสามารถทำได้:
convert input.png -depth 8 output.png # Force 8-bit output
convert input.png -depth 16 output.png # Force 16-bit (per channel) output
หากคุณต้องการบังคับช่องอัลฟ่า/โปร่งใส คุณสามารถทำได้:
convert input.tif -type TrueColorAlpha output.png # Force a true color output with transparency
และคุณสามารถรวมสิ่งเหล่านี้เข้าด้วยกัน หากคุณต้องการดูตัวเลือก type ให้ใช้คำสั่งนี้:
identify -list type
Bilevel
ColorSeparation
ColorSeparationAlpha
ColorSeparationMatte
Grayscale
GrayscaleAlpha
GrayscaleMatte
Optimize
Palette
PaletteBilevelAlpha
PaletteBilevelMatte
PaletteAlpha
PaletteMatte
TrueColorAlpha
TrueColorMatte
TrueColor
นอกจากนี้ โดยเฉพาะในกรณีของไฟล์ PNG
คุณยังสามารถ บังคับ เอาต์พุตได้โดยการระบุประเภท PNG เป็นตัวพิมพ์ใหญ่ ตามด้วยเครื่องหมายทวิภาคหน้าชื่อไฟล์เอาต์พุต ดังนี้:
convert input.tif PNG64:output.png # Force 64-bit RGBA (3 channels @ 16-bits each, plus alpha)
convert input.tif PNG32:output.png # Force 32-bit RGBA (3 channels @ 8-bits each, plus alpha)
convert input.tif PNG48:output.png # Force 48-bit output (3 channels @ 16-bits each, no alpha)
convert input.tif PNG24:output.png # Force 24-bit output (3 channels @ 8-bits each, no alpha)
ดังนั้นคำตอบสั้นๆ ก็คือ
convert input.tif PNG64:output.png
or
convert input.tif -depth 16 -type TrueColorAlpha output.png
ระวังให้ดี ImageMagick จะแทนที่เวอร์ชันที่สองหากไม่มีช่องอัลฟาในภาพอินพุตของคุณ ในขณะที่มันจะไม่ทำเช่นนั้นหากคุณใช้ PNG64:
person
Mark Setchell
schedule
28.02.2015
convert
ทำตามที่คุณบอก ไม่มีอะไรเป็นมลทิน บางทีคุณอาจต้องบอกว่าคุณต้องการเอาต์พุต 16 บิต (ซึ่งถ้าฉันเข้าใจถูกต้อง จะต้อง ลดขนาดตัวอย่าง เป็น 4-4-4-4 แชนเนล) - person Jongware   schedule 27.02.2015