最佳答案
虽然建议初学者使用第三方库,但有时并不是最好的选择,特别是如果你想在 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);
- 将您的图像转换为位图并裁剪位图,因此从可绘制对象或设备上的 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);
- 这将根据 xy 坐标定义一个矩形,然后它会根据这些坐标将图像裁剪为位图,然后只需调用新的 Canvas 即可将其绘制到您想要的任何位置。
PS:请在使用任何库之前检查android sdk 有很多很好的例子,它会减少不必要的库的使用,它会让你更好地理解底层代码。
关于java - 如何在android中获取图像裁剪器的坐标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54376683/