将图像裁剪为固定大小

时间:2013-07-09 22:00:00

标签: android android-image

我正在使用相机捕捉图像,然后我将其保存到位图中。我期待将该图像中心裁剪为600x600px。

我发现这样的事情:

https://stackoverflow.com/a/6909144/1943607

然而,我无法找到如何设置固定的&高度。

我在绘制图像和画布方面太糟糕了。对我来说似乎是如此抽象。

谢谢。

2 个答案:

答案 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);

我从您提供的链接更改代码,希望这有效。