即时裁剪图像

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。

【讨论】:

以上是关于即时裁剪图像的主要内容,如果未能解决你的问题,请参考以下文章

Rails 3:动态裁剪图像的显示

即时调整图像大小

我想裁剪图像并输入在图像中查看。如何使用这种类型的裁剪从相机裁剪图像?

捕获和裁剪图像并保存裁剪的图像

如何选择图像的区域进行裁剪?

如何缩放 + 裁剪图像并在 imageview 上显示裁剪的图像