我通过传递一个意图打开默认的Android设备相机。因此,在捕获图像时,默认情况下,相机会以JPEG格式存储图像。但我不想以有损格式存储它们。我希望图片质量很高。那么如何以PNG格式存储它?...
这里是我的代码打开相机:
Date dt = new Date();
int date=dt.getDate();
int hours = dt.getHours();
int minutes = dt.getMinutes();
int seconds = dt.getSeconds();
String curTime = date+"_"+hours + "_"+minutes + "_"+ seconds;
_path=Environment.getExternalStorageDirectory() +"/"+curTime+".jpg";
File file = new File( _path );
Uri outputFileUri = Uri.fromFile( file );
Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE );
intent.putExtra( MediaStore.EXTRA_OUTPUT, outputFileUri );
context.startActivityForResult(intent,0);
然后处理onActivutyForResult(){....}
由于 斯纳
答案 0 :(得分:22)
我没有遇到任何方法让相机将文件保存为PNG
。
但您可以将JPEG
图片转换为PNG
格式。
try {
FileOutputStream out = new FileOutputStream(filename);
bmp.compress(Bitmap.CompressFormat.PNG, 100, out); //100-best quality
out.close();
} catch (Exception e) {
e.printStackTrace();
}
注意,这不会提高质量。您无法“增加”图像中的信息。这只会改变图像格式。