[英]Android camera preview byte[] to Java image
我有一个使用相机的android应用。 我正在使用套接字连接发送摄像机的onPreviewFrame()的byte []。
这是我的代码
public void onPreviewFrame(byte[] data, Camera camera) {
Log.v(TAG, "data=" + data.length);
try
{
Log.i(TAG,"connecting to server...");
soc=new Socket(serverAddr,8210);
outStream=new ObjectOutputStream(soc.getOutputStream());
Log.i(TAG,"connected");
outStream.write(data);
outStream.flush();
outStream.close();
}
catch(Exception ex)
{
Log.e(TAG,"error on stream : " + ex);
}
}
我只是想知道byte[] data
的格式以及如何将其转换为服务器上的图像。 我正在使用在PC上运行的以下Java代码:
ServerSocket serverSocket = new ServerSocket(8210);
while (true) {
Socket client = serverSocket.accept();
byte [] mybytearray = new byte [497664];
InputStream is = client.getInputStream();
FileOutputStream fos = new FileOutputStream("source-copy.jpg");
BufferedOutputStream bos = new BufferedOutputStream(fos);
bytesRead = is.read(mybytearray,0,mybytearray.length);
bos.write(mybytearray, 0 , 497664);
bos.flush();
bos.close();
}
在服务器上,它正在创建文件,但是byte []需要以某种图像格式进行解码。 有谁知道该怎么做?
我还有什么需要的吗?
假设此数据来自Camera Preview,则需要找出什么是Preview Format: Android-Camera.Parameters-getPreviewFormat() ,它指向可能的图像格式列表-Android-ImageFormat 。 您需要将格式发送到服务器端代码。
一旦服务器端具有了格式,您就可以搜索网络以解码或转换为合适的格式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.