(Java和C++)二进制date数据写进android保存为yuv格式
Java实现函数:
String strpath = "/storage/emulated/0/DCIM/" + i + "output.yuv";
boolean isInfiel= writeFile(strpath, frameData);
public boolean writeFile(String path, byte[] data) {
FileOutputStream out = null;
try {
File file = new File(path);
File parent = file.getParentFile();
if (parent != null && !parent.exists())
parent.mkdirs();
if (!file.exists()){
boolean isok = file.createNewFile();
out = new FileOutputStream(path);
out.write(data);
FileDescriptor fd = out.getFD();
fd.sync();
return true;
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (out != null)
out.close();
} catch (Exception e) {
}
}
return false;
}
C++实现函数:
static void dumpYuvToFile(const int width, const int height, void *yBuf, void *uvBuf ) {
static int i = 0;
char buf[256] = { '\0' };
LOGE(" dumpYuvToFile(): i is %d", i);
snprintf(buf, sizeof(buf), "/data/misc/media/_%d_%d_%d.yuv", width, height, i);
FILE* file_fd = fopen(buf, "wb");
if (file_fd != NULL) {
void *data = NULL;
int written_len = 0;
data = (void *) ((uint8_t *) yBuf);
written_len += fwrite(data, width * height, 1, file_fd);
if (NULL == uvBuf)
data = (void *) ((uint8_t *) yBuf + width * height);
else
data = (void *) ((uint8_t *) uvBuf);
written_len += fwrite(data, width * height / 2, 1, file_fd);
fclose(file_fd);
LOGE("%s: dumpYuvToFile(): -------sucess", __func__);
} else {
LOGE("%s:dumpYuvToFile(): fail t open file for image dumping", __func__);
}
i++;
}
(Java和C++)二进制date数据写进android保存为yuv格式的更多相关文章
- Java将数据写进excel
Java将数据写进excel Java将数据写进excel class User { private String name ; private String password; public Use ...
- 78)PHP,编写session存储机制(将数据写进数据库)的代码整理(未实验)
<?php function userSessionBegin() { echo '<br>Begin<br>'; //初始化数据库服务器连接,这个函数是最先执行,所以, ...
- java 将数据写进文件
/*每次只写入一行数据 只需要调用特定的方法即可.*/package com.second.File;import java.io.*;/** * Created by hasee on 2016/1 ...
- c#逐行分元素读取记事本txt数据写进数据库
其实这里最关键的一个方法是 StreamReader类里的 ReadLine();这个方法可以逐行读取txt流里面的数据.写了个简单的demo,已经加上了详细的注释说明. ok,好了,不废话,下面 ...
- python2/3中 将base64数据写成图片,并将图片数据转为16进制数据的方法、bytes/string的区别
1.python2将base64数据写成图片,并将数据转为16进制字符串的方法 import binascii img = u'R0lGODlhagAeAIcAAAAAAAAARAAAiAAAzABE ...
- Java中的二进制及基本的位运算
Java中的二进制及基本的位运算 二进制是计算技术中广泛采用的一种数制.二进制数据是用0和1两个数码来表示的数.它的基数为2,进位规则是"逢二进一",借位规则是"借一当二 ...
- Java 使用stringTemplate导出大批量数据excel(百万级)
目前java框架中能够生成excel文件的的确不少,但是,能够生成大数据量的excel框架,我倒是没发现,一般数据量大了都会出现内存溢出,所以,生成大数据量的excel文件要返璞归真,用java的基础 ...
- Java并发编程:用AQS写一把可重入锁
Java并发编程:自己动手写一把可重入锁详述了如何用synchronized同步的方式来实现一把可重入锁,今天我们来效仿ReentrantLock类用AQS来改写一下这把锁.要想使用AQS为我们服务, ...
- iOS—网络实用技术OC篇&网络爬虫-使用java语言抓取网络数据
网络爬虫-使用java语言抓取网络数据 前提:熟悉java语法(能看懂就行) 准备阶段:从网页中获取html代码 实战阶段:将对应的html代码使用java语言解析出来,最后保存到plist文件 上一 ...
随机推荐
- Python12期培训班-day1-登陆验证代码分享
#!/usr/bin/env python import sys import getpass afile = 'afile' bfile = 'bfile' circulation_num=0 #循 ...
- 问:Linux下Chrome标题栏中文乱码
From:http://blog.csdn.net/loveaborn/article/details/29579787 在使用Linux的时候你会遇到一些奇奇怪怪的问题,不过,你会在解决这些问题的过 ...
- Python笔记 001
#python版本:3.5.2 #for循环 for letter in ("xuyingke"): #默认循环 print ("当前字母:",letter) ...
- HDU 4473 Exam 枚举
原题转化为求a*b*c <=n中选出两个数组成有序对<a,b>的选法数. 令a<=b<=c.... 分情况讨论: (1)全部相等,即a = b = c. 选法有n^(1/ ...
- c++ 语言细节
#include <iostream>using namespace std;int main(){ cout << "\nHello World!\n&qu ...
- HDU-2222 Keywords Search(AC自动机--模板题)
题目大意:统计一共出现了多少次模板串. 题目分析:AC自动机的模板题.不过这题有坑,相同的模板串不能只算一次. 代码如下: # include<iostream> # include< ...
- (转)【重磅】无监督学习生成式对抗网络突破,OpenAI 5大项目落地
[重磅]无监督学习生成式对抗网络突破,OpenAI 5大项目落地 [新智元导读]"生成对抗网络是切片面包发明以来最令人激动的事情!"LeCun前不久在Quroa答问时毫不加掩饰对生 ...
- Python error: ascii’/'utf-8′ codec can’t decode byte 0xb8 in position 50: ord
字符串使用了费ascii编码的字符,也就是它代表的16进制的编码超过127. 解决这个问题可以使用下面的方法解决,其实就是设置默认的编码.python 2.x的默认编码是ascii,如果改为utf-8 ...
- IntelliJ IDEA15导入jar包
在IDEA中导入jar包和eclipse中是不一样的,那么现在我们就来看看在IDEA中如何导入jar包. 1.点击"File"-->"Project Structu ...
- iOS 定位于地理反编码
- (void)viewDidLoad { [self startLocation]; } //开始定位 -(void)startLocation{ self.locationManager = [[ ...