java - 如何在android中获取图像裁剪器的坐标?

标签 java android android-studio

我正在尝试根据此图像获取图像裁剪器的这些 x1、x2、y1、y2 坐标。

image

对此有任何帮助吗?

以下链接是我用于图像裁剪的库。 Android-Image-Cropper

最佳答案

虽然建议初学者使用第三方库,但有时并不是最好的选择,特别是如果你想在 android SDK 中执行任何操作,请查看本教程,例如:

https://code.tutsplus.com/tutorials/capture-and-crop-an-image-with-the-device-camera--mobile-11458

现在对于你的问题,你可以通过多种方式解决这个问题:

Bitmap mBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.yourImage);

croppedImage = Bitmap.createBitmap(mBitmap, 0 , 0 , desiredwidth, desiredheight);
  1. 将您的图像转换为位图并裁剪位图,因此从可绘制对象或设备上的 Uri 获取您的图像,然后使用 2 行代码对其进行裁剪,在本例中我选择可绘制对象。

如果你想裁剪出边界区域,使用上面的答案是行不通的

Bitmap mBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.yourImage);


Rect mRect= new Rect(x1, y1, x2, y2); 

assert(mRect.left < mRect.right && mRect.top < mRect.bottom);

Bitmap croppedImage = Bitmap.createBitmap(rect.right-rect.left, rect.bottom-rect.top, Bitmap.Config.ARGB_8888);

new Canvas(croppedImage).drawBitmap(mBitmap, -rect.left, -rect.top, null);
  1. 这将根据 xy 坐标定义一个矩形,然后它会根据这些坐标将图像裁剪为位图,然后只需调用新的 Canvas 即可将其绘制到您想要的任何位置。

PS:请在使用任何库之前检查android sdk 有很多很好的例子,它会减少不必要的库的使用,它会让你更好地理解底层代码。

关于java - 如何在android中获取图像裁剪器的坐标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54376683/

相关文章:

android - AVD 未在 Android Studio 中创建

android - Android Studio 插件自动安装

在 Android 中使用 ViewPager 时出现 java.lang.IllegalStateException

java - 如何在Android中获取多个通知

java - Proguard 不会删除我的日志

java - 带有自定义 ListView 的 Android 对话框

android - 按下工具栏上的后退按钮

java - 如何防止 Android Studio 在项目导航中自动折叠我的包?

java - 解析Java中其他文本中嵌入的日期

java - 如何避免 CouldNotDetermineHibernateDialectException 错误?