java - Android 相机预览 byte[] 到 Java 图片

标签 java android image

我有一个使用相机的安卓应用。我正在使用套接字连接发送相机的 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[] 数据 的格式以及如何将其转换为服务器上的图像。我正在使用以下在 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[] 需要以某种图像格式进行解码。有谁知道怎么做?

我还需要什么吗?

最佳答案

假设此数据来自相机预览,您需要找出预览格式是什么:Android - Camera.Parameters - getPreviewFormat()它指向可能的图像格式列表 - Android - ImageFormat .您需要将格式发送到服务器端代码。

一旦服务器端有了格式,您就可以搜索网络进行解码或转换为合适的格式。

关于java - Android 相机预览 byte[] 到 Java 图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5206027/

相关文章:

java - 单击 JTable 单元格内的 JComboBox 时,JComboBox 在 JTable 外部消失

java - Eclipse 中的奇怪 “java.lang.NoClassDefFoundError”

html - 在不影响导航栏或文本的情况下将背景图像变灰

java - 仅从终端使用 j2objc 和 jre 仿真库将 java 编译为 objective-c

java - 在测试中排除一些bean

android - 线程在 wait() 和 notify() 之后丢失消息

java - 快速查询时 SQLite 上出现 CursorIndexOutOfBoundsException 错误

android - 如何将 AChartEngine 与 SQLite 数据库中的数据集成?

python - 使用 OpenCV Python 用霍夫变换裁剪圆

wpf - 如何使用自定义启用/禁用图像创建一个简单的 WPF UserControl 按钮?