[英]How to crop an image without using internal camera cropping
我想在顯示裁剪圖像imageview
被顯示為預覽顯示它作為預覽后,現在我想重新裁剪,並顯示在imageView
,但我不想做一個利用內部相機裁剪和而裁剪我不想修復高度和寬度。
由於您沒有提到任何具體要求,所以我將使用圓形圖像裁剪示例來展示它是如何工作的。 因此,圖像就像在某些紙張上繪制的圖片,所以您需要在現實生活中改變圖像?, Canvas
, Paint
, Shapes
等。通過各種API可以在android
和Java
使用。
您可以使用bitmap
,這是一個pixels
matrix
,您可以使用“Canvas”類進行繪畫,裁剪,樣式等。
腳步 :
1.從您的圖像或drawable等獲取位圖
2.使用Config.ARGB_8888
平均設置alpha創建新位圖,將RGB通道創建為新位圖的8位大小以提高效率。
3.為圓角樣式創建新的BitmapShader
。
4.創建一個新的Paint
,其中包含要繪制的樣式和顏色信息。
5.創建一個新的Canvas
,使用輸入處理繪制操作。
6.使用Paint
和radius在Canvas
對象上調用'drawCircle'。
你完成了! 現在,您可以研究這些API以滿足您的要求。
Bitmap bitmap = yourImageBitmap; // step 1
Bitmap circleBitmap = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Bitmap.Config.ARGB_8888); // step 2
BitmapShader shader = new BitmapShader (bitmap, TileMode.CLAMP, TileMode.CLAMP);// step 3
Paint paint = new Paint(); // step 4
paint.setShader(shader);
paint.setAntiAlias(true); // smooth picture
Canvas c = new Canvas(circleBitmap); // step 5
c.drawCircle(bitmap.getWidth()/2, bitmap.getHeight()/2, bitmap.getWidth()/2, paint); // step 6
myImageView.setImageBitmap(circleBitmap);
我可能會使用ImageMagick。
https://github.com/paulasiimwe/Android-ImageMagick
它是一個高質量,靈活的圖像處理庫。 我沒有在Android中使用它,但是從命令行和C#中它非常簡單。 我相信MagickImage
類是您需要的主要類。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.