拍摄给定尺寸的Android照片
Posted
技术标签:
【中文标题】拍摄给定尺寸的Android照片【英文标题】:Take photo of given size Android 【发布时间】:2017-01-23 19:09:43 【问题描述】:我正在开发一个拍摄照片并将其保存在 android/data/package/files 中的应用程序。我想减少使用的存储空间,所以我想在保存之前调整照片大小。目前,我将新意图传递称为额外的输出路径。是否也可以传递所需的大小,或者在保存之前可以拥有位图?
public void takePicture(View view)
Intent pictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
File f = new File(getPath(nameEdit.getText().toString()));
path = f.getAbsolutePath();
pictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(f));
if (pictureIntent.resolveActivity(getPackageManager())!=null)
startActivityForResult(pictureIntent,REQUEST_IMAGE_CAPTURE);
【问题讨论】:
【参考方案1】:也可以通过想要的尺寸
没有。
在保存之前可以有位图吗?
不是真的。您可以编写自己的ContentProvider
并为此使用Uri
,而不是文件。当相机应用程序尝试保存内容时,您会首先在内存中获取该信息。但是,您将因OutOfMemoryError
而崩溃,因为您很可能没有足够的堆空间来保存全分辨率照片。
您可以使用BitmapFactory
和inSampleSize
中设置的inSampleSize
来读取相机写入的文件,保存您认为合适的调整大小的图像,然后删除全分辨率图像。或者,跳过EXTRA_OUTPUT
,您将获得返回给您的缩略图,该缩略图是通过在传递给onHandleIntent()
的Intent
上调用getExtra("data")
获得的。
【讨论】:
我也想过保存它,调整它的大小,然后删除全尺寸的照片,但我希望能有更高效的东西。如果不可能,我将以这种方式进行。谢谢以上是关于拍摄给定尺寸的Android照片的主要内容,如果未能解决你的问题,请参考以下文章
Android笔记67Android之使用系统中的相机功能(拍照保存照片显示拍摄的照片照片保存到图库等操作)