我正在使用相机捕捉图像,然后我将其保存到位图中。我期待将该图像中心裁剪为600x600px。
我发现这样的事情:
https://stackoverflow.com/a/6909144/1943607
然而,我无法找到如何设置固定的&高度。
我在绘制图像和画布方面太糟糕了。对我来说似乎是如此抽象。
谢谢。
答案 0 :(得分:1)
This 正是您所需要的。
// Returns an immutable bitmap from the specified subset of the source bitmap.
static Bitmap createBitmap(Bitmap source, int x, int y, int width, int height)
我真的不知道(0,0)是左上角还是中心,但我相信它是左上角。
* (0,0)
*~~~~~~+===========+
' ' |
' ' 200 |
' ' |
+~~~~~~+ | 400
| 100 |
| |
| |
+==================+
300
如果它确实是中心那么:
x should be width /2
y >> height/2
否则如果是左上角:
x should be width /2 - cropWidth/2
y >> height/2 - cropHeight/2
在这两种情况下都会是这样的。
* (150,200)
+==================+
| |
| +~~~~~~+ |
| ' ' |
| ' * '200 | 400
| ' ' |
| +~~~~~~+ |
| 100 |
+==================+
300
答案 1 :(得分:1)
600x600px
if(srcBmp.getWidth()>600 && srcBmp.getHeight()>600)
dstBmp = Bitmap.createBitmap(srcBmp,
srcBmp.getWidth()/2 - 600/2,
srcBmp.getHeight()/2 - 600/2,
600,
600);
我从您提供的链接更改代码,希望这有效。