我用相機捕捉圖像,然後將其保存到位圖中。我期待將該圖像中心裁切爲600x600像素。將圖像裁剪爲固定尺寸
像這樣的東西,我發現:
https://stackoverflow.com/a/6909144/1943607
但是,我無法找到我怎麼能設定一個固定的&高度。
我太糟糕了,在繪製圖像和畫布。對我來說這似乎很抽象。
謝謝。
我用相機捕捉圖像,然後將其保存到位圖中。我期待將該圖像中心裁切爲600x600像素。將圖像裁剪爲固定尺寸
像這樣的東西,我發現:
https://stackoverflow.com/a/6909144/1943607
但是,我無法找到我怎麼能設定一個固定的&高度。
我太糟糕了,在繪製圖像和畫布。對我來說這似乎很抽象。
謝謝。
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
600x600px
if(srcBmp.getWidth()>600 && srcBmp.getHeight()>600)
dstBmp = Bitmap.createBitmap(srcBmp,
srcBmp.getWidth()/2 - 600/2,
srcBmp.getHeight()/2 - 600/2,
600,
600);
我改變從你給的鏈接代碼,希望這個作品。
得到了類似'newBitmap = Bitmap.createBitmap(oldBitmap,x,y,500,500);'。正如你所看到的,x和y缺失。我不知道如何計算它。 – Reinherd
@SergiCastellsaguéMillán再次閱讀我的答案。 –