我正在使用 android 内置相机拍照,然后将相同的照片附加到电子邮件中,当我在 1.6 设备中测试此功能时,我能够命名要由内置相机拍摄的照片,但在 2.1 中,图片有一个名称,即由设备给出,
如何在 2.1 内置相机图像中给用户定义名称..
为了避免这个问题,我手动保存图像,但是当我尝试通过 intent 将图像作为位图取回,然后使用压缩方法将其保存到 SD 卡时
这个方法处理来自内置摄像头的结果
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
File file = new File(Environment.getExternalStorageDirectory()
+ "/test.png");
switch (requestCode)
{
case PHOTO_ACTION:
if (resultCode == RESULT_CANCELED)
{
addPhoto = false;
Toast.makeText(this, "Canceled ", Toast.LENGTH_LONG).show();
break;
} else if (resultCode == RESULT_OK)
{
Bundle b = data.getExtras();
Bitmap bm = (Bitmap) b.get("data");
FileOutputStream out;
try
{
out = new FileOutputStream(file);
bm.compress(Bitmap.CompressFormat.JPEG, 100, out);
out.flush();
out.close();
scanPhoto(file.toString());
out = null;
addPhoto = true;
} catch (Exception e)
{
e.printStackTrace();
addPhoto = false;
}
但是当我像这样存储时,我得到了两张图片。一个有系统给定的名字,另一个有我给的名字。但是用户定义的图像分辨率较低所以我的问题是如何在不压缩的情况下以更高的分辨率保存位图.. 请帮助....我
最佳答案
如果您只想保存位图而不降低质量,请尝试使用 CompressFormat.PNG 而不是 JPEG,我以前见过有人遇到过这个问题。尝试更改:
bm.compress(Bitmap.CompressFormat.JPEG, 100, out);
与:
bm.compress(Bitmap.CompressFormat.PNG, 100, out);
看看它是否有帮助。
关于android - 将位图保存到 SD 卡而不在 android 中压缩它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3923652/