如何在Android中获取图像裁剪器的坐标?

时间:2019-01-26 08:02:36

标签: java android android-studio

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

image

对此有任何帮助吗?

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

1 个答案:

答案 0 :(得分:0)

尽管建议初学者使用第三方库,但有时不是最佳选择,尤其是如果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坐标定义一个矩形,然后将基于这些坐标将图像裁剪为位图,然后只需调用new Canvas即可将其绘制到任何位置。

PS:在使用任何库之前,请检查android sdk,那里有很多很好的例子,它将减少不必要的库的使用,并使您更好地理解基础代码。