【发布时间】:2016-11-17 12:18:15
【问题描述】:
我要求用户从我的应用程序中单击图像,然后该图像存储在本地存储中并从那里存储到服务器,但问题是存储的图像模糊。
public void saveImage(Bitmap bitmap, int i)
{
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG,100, bytes);
File directory = new File(Environment.getExternalStorageDirectory()+"my_directory");
if(!directory.exists())
{
directory.mkdirs();
}
File f = new File(Environment.getExternalStorageDirectory()+"my_directory");
try{
f.createNewFile();
//write the bytes in file
FileOutputStream fo = new FileOutputStream(f);
fo.write(bytes.toByteArray());
fo.close();
}catch(IOException ioe){
ioe.printStackTrace();
}
}
这是我用来保存图像的代码,这是生成位图的 OnActivityResult。
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 0)
{
if(data!=null)
{
Bitmap thumbnail = (Bitmap) data.getExtras().get("data");
iv_upload.setImageBitmap(thumbnail);
saveImage(thumbnail,(int)System.currentTimeMillis());
}
}
}
【问题讨论】:
-
您正在保存返回的缩略图而不是全尺寸图像
-
thumbnail 为我提供位图,我将从哪里获得完整尺寸的图像
-
您必须将 输出文件 uri 传递给图像捕获意图,例如
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoURI);请参阅我的第一条评论中提供的链接。
标签: android android-bitmap android-camera-intent