最近做视频采集,使用ov511摄像头。由于采用2.6.24内核,其驱动程序不能将图片格式转换为rgb565的,所以需要在应用程序上做修改。 网上流行的一个程序都是直接使用rgb565格式直接显示在fb设备上,为了使用该程序,需要将yuv420p格式的图像转换为rgb565的,下面是我的源代码,测试通过的 static void cvt_420p_to_rgb565(int width, int height, const unsigned char *src, unsigned short *dst) { int line, col, linewidth; ...
http://realchecko.blogspot.com/2009/01/alpha-blend-for-rgb565.html 把 rgb565 轉到 32 bit (但是 order 不是 rgb),然後作 32 bit 的 X alpha 運算。\n這樣,就只要作一次乘法。 rgb565 轉到 32 bit 的方法也很聰明,就是把 中間的 G 移出來到 high 16 bit 中: unsigned int x = rgb565; x = (x | (x 算好後,轉回來的方法: unsigned short rgb565; rgb565 = (x | (x >> 16)); 所以整個運算就是... #define ALPHA 12 /...
查过pixbuf_new_from_data只能支持8位的像素值,如rgb24、rgba32这些。不知道gtk有没有支持像rgb565或是rgb666这些格式的像素,哪个API能实现? 谢谢!
上网搜索过,网上流行的都是右移3,2,3位。 我在视频采集程序的源代码上看到的也是这种方法。 我实际在用一张24位的BMP显示在rgb565的Framebuffer时也是使用这个方法。可是效果不怎么理想。。。。 而我在用GIMP转换时效果却很好,不知道是不是存在更好的算法呢?
rgb 转 HEX 代码表 hexarray[0]="00";hexarray[1]="01";hexarray[2]="02"; hexarray[3]="03";hexarray[4]="04";hexarray[5]="05"; hexarray[6]="06";hexarray[7]="07";hexarray[8]="08"; hexarray[9]="09";hexarray[10]="0A";hexarray[11]="0B"; hexarray[12]="0C";hexarray[13]="0D";hexarray[14]="0E"; hexarray[15]="0F";hexarray[16]="10";hexarray[17]="11"; hexarray[18]="12";hexarray[19]="13";hexarray[20]="14"; h...
计算机彩色显示器显示色彩的原理与彩色电视机一样,都是采用R(Red)、G(Green)、B(Blue)相加混色的原理:通过发射出三种不同强度的电子束,使屏幕内侧覆盖的红、绿、蓝磷光材料发光而产生色彩。这种色彩的表示方法称为rgb色彩空间表示(它也是多媒体计算机技术中用得最多的一种色彩空间表示方法)。 根据三基色原理,任意一种色光F都可以用不同分量的R、G、B三色相加混合而成。 F = r [ R ] + g [ G ] + b [ B ] 其中,r、...