【随笔】32位RGB转换为16位的RGB,优化%

RGB图像-像素、分辨率、相关概念 ARGB_4444:每个像素用16比特位表示,占2个字节,由4个4位组成,ARGB分量都是4位,则图像深度为12位、像素深度16位、位深4位。RGB555:每个像素用16位表示,占2个字节,RGB分量都使用5位(最高位不用),则图像深度为15位、像素深度16位、位深5位;ARGB32:带alpha通道的RGB24,占4个字节,RGB分量都使用8位,则图像深度为24位、像素深度32位、位深8位;RGB24:每个像素用24位表示,占3个字节,RGB分量都使用8位,则图像深度和像素深度都为24位、位深8位; 阅读详情

gameloft 有道笔试题是这样的:

有32位的RGB色彩,保存方式如下:

RED = 0X00FF0000;

   GREEN = 0X0000FF00;

       BULE= 0X000000FF;

实现一个函数将此32位RGB转换为16位的RGB色彩,其中(REG, GREEN, BLUE) 分别为( 5, 6, 5)

另外:对于色彩一般是舍弃低位保留高位。

unsigned int ConvertRGB32To16(unsigned int nSrcRGB)
{
	unsigned int Red = (nSrcRGB & 0x00F80000) >> 8 ;
	unsigned int Green = (nSrcRGB & 0x0000FC00) >> 5 ;
	unsigned int Blue = (nSrcRGB & 0x000000F8) >> 3;
	return Red | Green | Blue;
}

/////////////////////////


优化下面操作:

int a = ret % 32;

优化:

int a = ret^((ret>>5)<<5);








RGB32图像与RGB24图像的转换 主要实现RGB32bit图像数据转换为RGB24bit图像数据void RGB32TO24(unsigned char* src, unsigned char* data, int width, int height)和RGB24bit图像数据转换为RGB32bit图像数据, void RGB24TO32(unsigned char* src, unsigned char* data, int width, int height) 立即下载

相关推荐

32位纯RGB图片数据添加BMP文件头程序

32位纯RGB图片数据添加BMP文件头,如果是24位位图数据的话把里面的4改成3,,32改成24即可。

32位颜色 转换成16位颜色

向别人学习而来:分享。。 1.颜色值有32位存储和16位存储实现呼唤。 2.原理new Color(97,100,255);这个是32位存储 参数依次是 r、g、b。省略了a,alpha通道的值 rgba; 实现: int32 int32Color(unsigned int r,unsigned int g, unsigned int b) {   return (((r)&0...

weixin_30279751的博客 3218

ROS2 DDS中间件(图文并茂+超详细)

DDS 的目标场景在端上,致力于使端上的应用可以更容易的进行通信,由于它的完全分布式架构,可以方便的将端上的应用拆分为多进程架构,从而提高端的容错能力。从产品定位角度来讲,它和 Chromium 中的 mojo 都是端上的通信中间件,只不过 mojo 不强调分布式,内部集成了更多的特定于端上的机制,比如句柄的传输,消息的缓存等。但由于 mojo 生于 Chromium,目前官方并没有把它独立出来,所以用起来比较不方便。而 DDS 或许可以在简单的场景下作为 mojo 的替代品。

weixin_39939185的博客 5282

32位真彩色与24位真彩色区别

            真彩色是指图像中的每个像素值都分成R、G、B三个基色分量,每个基色分量直接决定其基色的强度,这样产生的色彩称为真彩色。真彩色图像是一种用三个或更多字节描述像素的计算机图像存储方式。 真彩色-表示方法          计算机表示颜色也是用二进制。16位色的发色总数是65536色,也就是2的16次方;24位色被称为真彩色,它可以达到人眼分辨的极限,发色数是1677万多

ZHANGXINGXIN的专栏 2万+

智能座舱架构与芯片 - (3) 硬件篇 上

在了解智能座舱的基本架构之后,我们有必要针对智能座舱域的硬件平台,软件平台,SOC等进行逐一介绍。从它们的整体结构中去认识最新的智能座舱组成部件,以及主要功能等。如上图,是中央计算-区域控制架构下的智能座舱硬件平台框架图,其中,智能座舱控制器CDC挂载在以太网交换机上,与其他车控域VDC,自驾域ADC,网联设备5G+V2X等通过以太网实现数据交互。而智能座舱域的外部硬件设备还包含有连接子系统音频子系统摄像头子系统显示子系统存储子系统功能安全子系统等。

joanna_xiao的博客 2403

【QT+VS】如何在现有VS项目中添加Qt界面?【全网最详细】

VS项目有了,就缺个QT界面,怎么办呢?这篇文章帮你一键搞定!

深耕CV 4985

【亲测免费】 Picture2Hex:高压缩率的16位颜色深度图片转换工具

Picture2Hex:高压缩率的16位颜色深度图片转换工具 【下载地址】Picture2Hex图片转16位颜色深度工具 Picture2Hex 是一款高效便捷的图片转换工具,专为将图片转换为16位颜色深度而设计。它支持多种常见图片格式,如JPG、PNG、BMP等,能在保持图片质量的同时大幅减小文件体积,适用于各种需要高...

gitblog_06795的博客 1290

Multisim实战:从零搭建体温检测报警电路(附完整仿真文件+调试技巧)

本文详细介绍了如何使用Multisim从零搭建体温检测报警电路,涵盖LM35温度传感器、LM358运算放大器等核心器件的选型与连接,以及信号调理、阈值比较和数码管显示等关键电路设计。附赠完整仿真文件和实用调试技巧,帮助电子工程初学者快速掌握体温温度检测系统的设计与实现。

weixin_28285943的博客 293

RGB32转RGB565

我在做JPEG解码的时候,需要将硬件解码得到的JPEG数据转换成RGB1555格式放到我事先创建好的RGB1555格式的显存上。在硬件解码得到的数据是RGB32颜色表示的,这就需要将RGB32颜色转换成RGB155516bit颜色,下面是我的做法。 RGB颜色是一个DWORD值

Nothing-Anything 2512

【Flink】状态编程: 订单超时告警

文章目录一、基础概念二、Flink状态编程1、支持的状态类型2、Managed Keyed State六种类型基本API状态的生命周期3、Managed Operator State三、案例:订单延迟告警统计1、需求描述2、需求分析3、数据与模型4、详细实现 一、基础概念 在Flink架构体系中,有状态计算可以说是Flink非常重要的特性之一。 有状态计算是指: 在程序计算过程中,在Flink...

一只皮皮熊 2862

模型算力需求估算

(Billion Parameters,简称B)和训练/推理的计算任务复杂度,结合硬件计算能力(例如每秒浮点运算次数,FLOPS)来估算。以下是详细的方法和公式说明,以及实际的计算示例。算力需求的估算依赖于参数量、模型架构及硬件性能,结合训练/推理场景的特定要求来计算。通过上述公式和示例,我们可以定量分析不同任务的算力需求,并合理配置硬件资源以优化运行效率。结论:推理任务相对较轻,单台H100可以在30秒内完成此任务。推理算力需求一般远低于训练,因为只需要执行前向传播。,可以将训练时间缩短到约。

形上得其象,形下合于数;阴阳自济,玄理自明。 8955

Ps:RGB 颜色模式

Ps菜单:图像/模式/RGB 颜色Image/Mode/RGB ColorRGB 颜色模式 RGB Color Mode是数字图像捕捉、处理以及显示的最常用模式,也是 Photoshop 默认的工作模式。RGB 是 Red(红色)、Green(绿色)、Blue(蓝色)的缩写。◆◆◆RGB 原色通道数码相机传感器将所有捕捉到的光信息转换为红色、绿色和蓝色的三个数值,分别记录在红、绿、蓝三个...

qq_41176800的博客 2723

INMP441麦克风与ESP32的I2S音频采集实战指南

本文提供了INMP441数字麦克风与ESP32开发板通过I2S接口进行高质量音频采集的完整实战指南。详细讲解了硬件连接、软件配置、数据读取及基础处理,并分享了常见的避坑技巧与性能优化建议,帮助开发者快速构建物联网音频应用。

weixin_28396629的博客 598

音视频基础知识

因此,我们平时的每帧数据就是一个NAL单元(SPS与PPS除外)。在实际的H264数据帧中,往往帧前面带有00 00 00 01 或 00 00 01 分隔符,一般来说编码器编出的首帧数据为 PSS与SPS,接着为 1 帧。-格式化数据并提供头信息。视频编码层面(VCL)网络抽象层面(NAL)

weixin_42136255的博客 1164

西南科技大学数字电子技术实验七(4行串行累加器设计及FPGA实现)FPGA部分

/在k=1时输入1,并在k=0时运算。//在k=1时输入0,并在k=0时运算。//在k=1时输入1,并在k=0时运算。//在k=1时输入0,并在k=0时运算。//在k=1时输入1,并在k=0时运算。//在k=1时输入1,并在k=0时运算。//在k=1时输入0,并在k=0时运算。//在k=1时输入0,并在k=0时运算。三、程序清单(每条语句必须包括注释或在开发窗口注释后截图)四、综合、管脚分配、生成输出文件、下载(所有步骤截图)五、仿真程序清单、波形(波形截图必做,截图!.k(k),//开关。

Welcome To My6n Blog 4332

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

32位RGB图像中值滤波

中值滤波对椒盐噪声有很好的滤出效果,下面以3x3滤波器为例,实现中值滤波。 排序,采用选择排序。 void Sort(int data[9]) { int i; int j; int minv; int index; index = 0; for (i = 0; i < 9; i++) { minv = data[i]; index = i; for (j =

MikeDai的博客 1885

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

自己用C写了一个RGB转16位(RGB565)颜色的程序,供我32开发板上的TFT显示屏使用,现在分享出来

自己用C写了一个RGB转16位(RGB565)颜色的程序,供我32开发板上的TFT显示屏使用,现在分享出来 ` #include <stdio.h> #include <math.h> typedef unsigned char u8; void aaa(u8 *a,u8 tx) {int t; for(t=0;t<8;t++) { if((tx&0x80)>>7) a[t]=1; else a[t]=0; tx<<=1; } } void

qq_39674745的博客 1367

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

粤嵌6818开发板LCD屏的应用

LCD屏分辨:800*480 像素 32位:说明一个像素点占4个字节,ARGB A:透明度 R:红 G:绿 B:蓝。Linux下一切皆文件,我们的LCD屏再系统中也是一个文件,设备文件:/dev/fb0。圆的方程式:(x-x0)*(x-x0) + (y-y0)*(y-y0) = r*r。如果要在LCD屏显示数据,那我们就可以把数据写入LCD屏的设备文件。练习6:在LCD屏显示一个太极图。练习1:再LCD屏显示一种颜色。练习4:再LCD屏显示一个圆球。练习5:在LCD屏显示一个彩虹。

m0_64148419的博客 3076

Halcon与OpenCV 16位/32位图像相互转换C++

Halcon与OpenCV图像类型转换基于C++ (附代码) 8位图像的转换参考上面链接,这里再给出16位的转换代码,32位大家可以自己修改一下,uint2改为real还有一些其他地方需要修改,大家可以自己试试 16bit--OpenCV Mat转Halcon HObject //16bit--OpenCV Mat转Halcon HObject HObject MatToHImage16Bit(Mat &imgMat) { HObject Hobj = HObject();

Color Space的博客 2214

常用的RGB格式

常用的RGB格式 RGB555 每个像素用16比特位表示,占2个字节,RGB分量都使用5位(最高位不用)。 //获取高字节的5个bit R = color & 0x7C00; //获取中间5个bit G = color & 0x03E0; //获取低字节5个bit B = color & 0x001F; RGB1555 RGBA(ARGB)中的一种,一位用于表示透明度。0完全透明,1完全不透明 RGB565 每个像素用16比特位表示,占2个字节,RGB分量分别使用5位、6位、5

南大侠的博客 3766

RGB16 转换Rgb32

unsigned long rgb16_to_rgb32(unsigned short a) { /* 1. Extract the red, green and blue values */ /* from rrrr rggg gggb bbbb */ unsigned long r = (a & 0xF800) >11; unsigned long g = (a & 0x07E0) >5; unsigned long b = (a & 0x001F);...

PrivateBoy的空间 891
上一篇: 【MFC】BROWSEINFO 设置路径并显示,默认引导至源路径
下一篇: 【MFC】解析二进制时,十进制显示为十六进制的数方法
Kayee2012
博客等级 码龄18年 27粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值