จำนวน 124 ในรูปแบบไบนารี่ไบท์ (แปดหลัก) คือ 01111100 เพื่อแสดง RGB สามเท่าของสามไบต์จะต้องใช้สามครั้งแปดหรือ 24 บิตเช่น โดยค่าเริ่มต้นr.composite
ลดสิ่งนี้ลงเหลือเพียง 15 บิตโดยการทิ้งบิตที่สำคัญน้อยที่สุดในแต่ละแบน ดังนั้นมันจึงจดจ้อง 01111100 ถึง 01111 ซึ่งเท่ากับ 15 (เท่ากับมันหาร 124 ด้วย 8 และไม่สนใจส่วนที่เหลือ) เห็นได้ชัดว่าผลลัพธ์ห้าบิตทั้งสามนี้ถูกต่อกันตามลำดับ B, G, R เพื่อสร้างตัวเลข 15 บิต (แทนค่าระหว่าง 0 ถึง 2 ^ 15-1 = 32767 ซึ่งเล็กพอที่จะทำให้ตารางสีเป็นขนาดที่สามารถจัดการได้) ค่าเหล่านี้จึงเป็นตัวแทนของวงภาพสามวงแต่ละวงมีความแม่นยำเพียงห้าบิตมากกว่าแปดวงดั้งเดิม
ในตัวอย่างของคำถามการคำนวณดำเนินการดังนี้:
Blue = 124 ถูกแปลงเป็น 124/8 = 15 (บวกกับส่วนที่เหลือที่ถูกทอดทิ้งของ 4) ในไบนารีนี่คือ 01111
Green = 124 ถูกแปลงเป็น 124/8 = 15 (บวกกับส่วนที่เหลือที่ถูกทอดทิ้งของ 4) ในไบนารีนี่คือ 01111
Red = 172 ถูกแปลงเป็น 172/8 = 21 (บวกกับส่วนที่เหลือที่ถูกทอดทิ้งของ 4) ในเลขฐานสองนี่คือ 1,0101
ตัวเลขถูกต่อกันเป็น 01111 01111 10101 เลขฐานสอง 15 หลักนี้แทนค่า 15861 = (15 * 32 + 15) * 32 + 21
r.composite
อาจทำการประมวลผลมากกว่านี้และอาจทำแตกต่างกันเล็กน้อยขึ้นอยู่กับตัวเลือกที่คุณให้ แต่การดำเนินการเหล่านี้แสดงวิธีการพื้นฐานที่ไบต์สามารถแปลงเป็นค่าห้าบิต
คุณสามารถย้อนกลับขั้นตอนโดยประมาณได้โดยใช้การแบ่งตามลำดับโดย 32:
15861/32 = 495 บวกส่วนที่เหลืออีก 21. (คูณด้วย 8 ส่วนที่เหลือของ 21 ให้ 168 ซึ่งน้อยกว่า 172 เดิมเล็กน้อยสำหรับแถบสีแดงเล็กน้อย)
495/32 = 15 บวกส่วนที่เหลืออีก 15 (คูณด้วย 8 ส่วนที่เหลือของ 15 นี้จะให้ 120 ซึ่งน้อยกว่า 124 เดิมเล็กน้อยสำหรับแถบสีเขียว)
เราเหลือ 15 ซึ่งเมื่อคูณด้วย 8 จะได้ 120 ซึ่งน้อยกว่า 124 ดั้งเดิมเล็กน้อยสำหรับแถบสีน้ำเงิน
การอ้างอิง
r.composite
หน้าคู่มือที่https://grass.osgeo.org/grass72/manuals/r.composite.html