我想做图像裁剪。 我看到以下链接。
但我想做的是如下。 我想从中心裁剪图像计算尺寸。 所以例如,如果我的图像是100像素并且裁剪我希望结果是50像素。 我想在左侧和右侧分别留下25像素,宽度为50像素。
以前有人做过吗?
答案 0 :(得分:1)
应该很简单。
假设您拥有width
和height
(您的源图片),并且您的输出需要cropped_width
和cropped_height
。
首先,我们需要计算源图像的中心:
int x_center=width/2;
int y_center=height/2;
然后,我们知道我们需要输出图片具有定义的大小,所以我们将大小的HALF放到左右:
int x_source=x_center-cropped_width/2;
int y_source=y_center-cropped_height/2;
最后,你有了用于裁剪的矩形:
Rect r = new Rect(x_source, y_source, cropped_width, cropped_height);
使用某种形式的DrawImage()
将该矩形复制到您需要的位置。