c语言将rgb565转换为rgb888
发布时间
阅读量:
阅读量
在转换rgb565到yuv422过程中,读写rgb565中r,g,b数据遇到困难,于是想到先将rgb565转换为yuv422
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *input, *output;
unsigned char r, g, b;
unsigned short pixel;
input = fopen("input.bin", "rb");
if (!input)
{
printf("Failed to open input file.\n");
return 1; }
output = fopen("output.bin", "wb");
if (!output)
{
printf("Failed to create output file.\n");
fclose(input);
return 1;
}
while (fread(&pixel, sizeof(pixel), 1, input))
{
r = (pixel >> 11) << 3; // 取出高位 5 位,向左移 3 位
g = ((pixel >> 5) & 0x3f) << 2; // 取出中间 6 位,向左移 2 位
b = (pixel & 0x1f) << 3; // 取出低位 5 位,向左移 3 位
// 写入 RGB888 数据
fwrite(&r, sizeof(r), 1, output);
fwrite(&g, sizeof(g), 1, output);
fwrite(&b, sizeof(b), 1, output); }
fclose(input);
fclose(output);
return 0;}
全部评论 (0)
还没有任何评论哟~
