【问题标题】:Android: Take image from Camera and crop itAndroid:从相机中获取图像并裁剪
【发布时间】:2015-01-01 08:27:58
【问题描述】:

我会尽量简明扼要,我正在为一家公司 atm 开发一个应用程序,我需要具备以下功能:

点击一张图片-->弹出对话框-->Pick (Take new image , Choose existing Image)-->选择或拍摄完图片后-->Crop the Image with 1:1 Aspect ratio 这样就变成了一个正方形。

我前段时间已经成功实现了该功能,但后来我意识到图像质量急剧下降,经过一些研究(6小时),我意识到如果你没有传递一个目录来保存图像以进行裁剪意图,它返回一个“缩略图”,这在我的情况下几乎没用,这里是我的问题列表:

1- 我无法指定保存图像的目录(我想将其保存到图库中,如果可能的话,使用我的应用名称创建一个新文件夹并将其保存到其中)

2- 我设法获得了高质量的裁剪图像,但当然它的尺寸很大,所以当我将它编码为 Base64 字符串并将其发送到服务器时,它需要很多时间,我很想知道哪种方法是更好(将其压缩 10% ,然后重新调整大小或仅重新调整大小或仅压缩)

3- 是否有某种教程处理我可以阅读的序列?

4- 我意识到,由于我是从 Open Camera Intent 保存图像,然后从 Crop Intent 保存图像两次,我该如何删除其中一个??

【问题讨论】:

    标签: android camera crop android-camera-intent image-compression


    【解决方案1】:
    1. 如果没有明确指定目标位置,您会得到缩略图,但完整图像仍会写入磁盘。请参阅 Android Camera : data intent returns null。查看developer.android.com 上的“官方”code sample 以获得最佳实践。请注意,某些设备/ROM 上可能仍然存在故障,请参阅 capturing images with MediaStore.ACTION_IMAGE_CAPTURE intent in android。实际上,当您使用 Intent 时,它最终可能会由最终用户安装的 3rd 方相机应用程序来实现,并且他们的行为可能是任意的。

    2. 调整大小不等同于压缩。请更具体地说明您的主要关注点。我不知道为什么你应该base64你的图像上传它,但经验法则是将裁剪的结果缩小到服务器端预期的尺寸,然后调整Jpeg压缩因子以实现预期的文件大小。

    3. 您可以以Wikipedia开头。

    4. 如果您的应用具有适当的权限,则可以。见Deleting a gallery image after camera intent photo taken

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-26
      • 2011-10-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多