簡體   English   中英

如何在不使用內部相機裁剪的情況下裁剪圖像

[英]How to crop an image without using internal camera cropping

我想在顯示裁剪圖像imageview被顯示為預覽顯示它作為預覽后,現在我想重新裁剪,並顯示在imageView ,但我不想做一個利用內部相機裁剪和而裁剪我不想修復高度和寬度。

由於您沒有提到任何具體要求,所以我將使用圓形圖像裁剪示例來展示它是如何工作的。 因此,圖像就像在某些紙張上繪制的圖片,所以您需要在現實生活中改變圖像?, CanvasPaintShapes等。通過各種API可以在androidJava使用。

您可以使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM