如何将24位rgb转换为8位rgb [英] How to convert a 24bit rgb to 8 bit rgb

查看:540
本文介绍了如何将24位rgb转换为8位rgb的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

你好朋友,



你可以帮我把24位RGB图像转换成8位RGB图像......



和16位灰度到24位RGB ..



谢谢,

PS:我是图像编程的新手和学习新方面



我尝试过:



i尝试过转移位如下...

r = r>> 1;

g = g>> 2;

b = b>> 1;

解决方案

如此处所述colors - 如何将24位RGB转换为8位RGB - 堆栈溢出 [ ^ ]每像素8位格式通常用作调色板索引。

但是,假设你有以下格式:



位数 23   22   21   20   19   18   17   16   15   14   13   12   11   10   9   8   7   6   5   4   3   2   1   0  
b7 b6 b5 b4 b3 b2 b1 b0 g7 g6 g5 g4 g3 g2 g1 g0 r7 r6 r5 r4 r3 r2 r1 r0

位数 7 6 5 < span class =code-digit> 4 3 2 1 0
B1 B0 G2 G1 G0 R2 R1 R0


然后
B1 = b7,B0 = b6
G2 = g7,G1 = g6,G0 = g5
R2 = r7,r1 = r6,r0 = r5



b =(rgb>> 16 )& 0xFF的;
g =(rgb>> 8 )& 0xFF的;
r = rgb& 0xFF的;

B = b>> 6 ;
G = g>> 5 ;
R = r>> 5 ;

RGB =(B << 6 )| (G << 3 )| R等


Hello Friends,

can you help me to convert a 24bit RGB image to 8 bit RGB image...

and 16bit grey scale to 24 bit RGB..

Thanks,
PS: i am new to image programming and learning new aspects

What I have tried:

i have tried to shift bits as below ...
r = r >> 1;
g = g >> 2;
b = b >> 1;

解决方案

As noted for instance here "colors - How to convert 24 bit RGB to 8 bit RGB - Stack Overflow"[^] the 8 bit per pixel format is usually used as palette index.
However, suppose you have the following formats:

bit number 23 22 21 20 19 18 17 16 15 14 13 12 11 10  9  8  7  6  5  4  3  2  1  0
           b7 b6 b5 b4 b3 b2 b1 b0 g7 g6 g5 g4 g3 g2 g1 g0 r7 r6 r5 r4 r3 r2 r1 r0

bit number  7  6  5  4  3  2  1  0
           B1 B0 G2 G1 G0 R2 R1 R0


Then 
     B1 = b7, B0 = b6
     G2 = g7, G1 = g6, G0 = g5
     R2 = r7, r1 = r6, r0 = r5

that is 

     b = (rgb >> 16) & 0xFF;
     g = (rgb >> 8) & 0xFF;
     r = rgb & 0xFF;

     B = b >> 6;
     G = g >> 5;
     R = r >> 5;

     RGB = (B << 6) | ( G << 3 ) | R;


这篇关于如何将24位rgb转换为8位rgb的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆