java 转换成565_android yuv怎么转换成RGB565?

news/2025/3/17 21:02:46/

网上找了一个方法,但是要怎么用了。staticvoidcvt_420p_to_rgb565(intwidth,intheight,constunsignedchar*src,unsignedshort*dst){intline,col,linewidth;inty,u,v,yy,vr,ug,vg,ub;i...

网上找了一个方法,但是要怎么用了。

static void cvt_420p_to_rgb565(int width, int height, const unsigned char *src, unsigned short *dst)

{

int line, col, linewidth;

int y, u, v, yy, vr, ug, vg, ub;

int r, g, b;

const unsigned char *py, *pu, *pv;

linewidth = width >> 1;

py = src;

pu = py + (width * height);

pv = pu + (width * height) / 4;

y = *py++;

yy = y << 8;

u = *pu - 128;

ug = 88 * u;

ub = 454 * u;

v = *pv - 128;

vg = 183 * v;

vr = 359 * v;

for (line = 0; line < height; line++) {

for (col = 0; col < width; col++) {

r = (yy + vr) >> 8;

g = (yy - ug - vg) >> 8;

b = (yy + ub ) >> 8;

if (r < 0) r = 0;

if (r > 255) r = 255;

if (g < 0) g = 0;

if (g > 255) g = 255;

if (b < 0) b = 0;

if (b > 255) b = 255;

*dst++ = (((unsigned short)r>>3)<<11) | (((unsigned short)g>>2)<<5) | (((unsigned short)b>>3)<<0);

y = *py++;

yy = y << 8;

if (col & 1) {

pu++;

pv++;

u = *pu - 128;

ug = 88 * u;

ub = 454 * u;

v = *pv - 128;

vg = 183 * v;

vr = 359 * v;

}

}

if ((line & 1) == 0) {

pu -= linewidth;

pv -= linewidth;

}

}

}

public static void save(byte[] yuv420, String path, int width, int height,

int quality) {

//开始转换,这里需要怎么写了

cvt_420p_to_rgb565();

Bitmap bitmap = Bitmap.createBitmap(bytes, width, height,

Config.RGB_565);

File file2 = new File(path);

try {

FileOutputStream out = new FileOutputStream(file2);

if (bitmap.compress(Bitmap.CompressFormat.JPEG, quality, out)) {

out.flush();

out.close();

}

} catch (Exception e) {

}

}

展开


http://www.ppmy.cn/news/542128.html

相关文章

java rgb8888转rgb565_Swift RGB888转RGB565

位图(Bitmap)&#xff0c;又称栅格图(英语&#xff1a;Raster graphics)或点阵图&#xff0c;是使用像素阵列(Pixel-array/Dot-matrix点阵)来表示的图像。 根据位深度,可将位图分为1、4、8、16、24及32位图像等。每个像素使用的信息位数越多&#xff0c;可用的颜色就越多&#…

java rgb565转rgb888_RGB565 与 RGB888的相互转换 | 学步园

本文内容不是完全原创&#xff0c;参考了网上部分精华&#xff0c;做了整理。 RGB色彩模式(也翻译为“红绿蓝”&#xff0c;比较少用)是工业界的一种颜色标准&#xff0c;是通过对红(R)、绿(G)、蓝(B) 三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的&#xf…

java rgb565转rgb888_RGB565 与 RGB888的相互转换

RGB565 与 RGB888的相互转换 2018-12-07 本文内容不是完全原创&#xff0c;参考了网上部分精华&#xff0c;做了整理。 RGB色彩模式(也翻译为“红绿蓝”&#xff0c;比较少用)是工业界的一种颜色标准&#xff0c;是通过对红(R)、绿(G)、蓝(B) 三个颜色通道的变化以及它们相互之…

python rgb565_读取RGB565格式的图像

前言:笔者准备参加校内的一个循线小车大赛,会用到摄像头,特写此文章以误导队友(逃) 之前准备用ov7725摄像头,这款摄像头据了解只能输出格式为RGB565的图片,作为从来没有接触过底层的小白,根本不知道这种格式的图片是什么东西,很懵。 后来在师兄的帮助下,加上在网上了解…

python rgb565_RGB565的转换

24bit RGB888 -> 16bit RGB565 的转换 24ibt RGB888 {R7 R6 R5 R4 R3 R2 R1 R0} {G7 G6 G5 G4 G3 G2 G1 G0} {B7 B6 B5 B4 B3 B2 B1 B0} 16bit RGB656 {R7 R6 R5 R4 R3} {G7 G6 G5 G4 G3 G2} {B7 B6 B5 B4 B3} 可以修正&#xff0c;比如(当然人眼无法感觉&#xff0c;但是RG…

图解RGB565、RGB555、RGB16、RGB24、RGB32、ARGB32等格式的区别

音视频实践学习 android全平台编译ffmpeg以及x264与fdk-aac实践ubuntu下使用nginx和nginx-rtmp-module配置直播推流服务器android全平台编译ffmpeg合并为单个库实践android-studio使用cmake编译ffmpeg实践android全平台编译ffmpeg视频解码器实践android全平台编译ffmpeg支持命…

16位Alpha颜色混合(565)

手机上的一些小图标&#xff0c;当按下这些图标时&#xff0c;颜色会发生改变&#xff0c;实现的方式是怎么样的&#xff1f;先看一篇网络上流传的文章&#xff1a; //----------------------------------------------------------------------------------------------------…

Codeforces Round #565 (Div. 3)

div3题目一般都是思维题&#xff0c;算法比较少&#xff0c;用来训练思维和解题速度很合适 A题 模拟即可 #include <iostream> using namespace std; typedef long long ll; int main(){int q;ll n;cin >> q;while(q--){cin >> n;int ans 0;while(n ! 1)…