即时裁剪图像
Posted
技术标签:
【中文标题】即时裁剪图像【英文标题】:Crop Image on the fly 【发布时间】:2016-04-04 07:49:26 【问题描述】:我正在开发相机应用程序。相机预览显示为4:3
比例,当我拍照时,我得到完整图像或全屏图像。
由于我向用户展示了具有4:3
比例的相机预览,我希望用户也能获得仅具有 4:3 比例的图像。
我见过许多库,它们为用户提供了裁剪选项,但在这里我给出了图像的路径,然后它应该裁剪图像并将其显示给用户。
我怎样才能做到这一点?
【问题讨论】:
我发现裁剪图像的最佳库是android-Image-Cropper。看到这个answer。 【参考方案1】:我认为 android 没有开箱即用的裁剪器 - 但您可以使用 Bitmap.createBitmap(originalBitmap, x1, y1, x2, y2)
裁剪自己的裁剪器
【讨论】:
克里斯,但是纵横比呢? 您可以通过正确计算坐标来确保新位图具有正确的纵横比。你取位图最大的 4:3 切口。不过需要注意的是 - 这对用户来说可能不是一个很好的体验,因此您应该创建一些屏幕窗口来显示您要剪切新图像的位置,以便他们可以调整它。 我同意@Chris,您应该让用户确认裁剪和/或更改区域。我使用this useful library 来做到这一点。 如果您需要一些文档,您可以查看here @Ayoub 谢谢,我不希望用户可以选择裁剪区域,只想裁剪图像并显示或保存【参考方案2】:每个 Android 设备上的每个相机都有预览尺寸和图片尺寸列表。
Camera.Parameters parameters = camera.getParameters();
List<Size> preview_sizes = parameters.getSupportedPreviewSizes();
List<Size> pictures_sizes = parameters.getSupportedPictureSizes();
尝试循环所有这些尺寸并选择 4:3。所以你的结果将是 4:3 没有裁剪。
阅读更多here。
【讨论】:
以上是关于即时裁剪图像的主要内容,如果未能解决你的问题,请参考以下文章