因此,我使用 fileOutputStream 将图片保存到 sd 卡 - 我将图像格式化为 jpeg - 但图像保存失真。这很奇怪,因为缩略图是图像的正确表示,但是当打开时,它是一系列水平线。
以下是我的代码中的一些片段:
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width,int height) {
if(previewing){
camera.stopPreview();
previewing=false;
}
if(camera!=null){
try{
camera.setPreviewDisplay(surfaceHolder);
Camera.Parameters parameters = camera.getParameters();
parameters.setPictureFormat(PixelFormat.JPEG);
parameters.setPreviewSize(width, height);
camera.setParameters(parameters);
camera.startPreview();
previewing=true;
} catch(IOException e){}
}
}
和
@Override
public void onPictureTaken(byte[] data, Camera camera) {
OutputStream outputStream;
try{
outputStream = new FileOutputStream(String.format("/sdcard/%d.jpg", System.currentTimeMillis())); //to sd card
imageFileOS.write(data);
imageFileOS.flush();
imageFileOS.close();
}catch(FileNotFoundException e){
e.printStackTrace();
}catch(IOException e){
e.printStackTrace();
}
}
};
图像(水平扭曲的 jpeg 和放在一起的缩略图)目前没有上传到服务器 - 希望有人知道发生了什么。如果没有,我可以稍后尝试上传照片。