如何在不使用内部相机裁剪的情况下裁剪图像

时间:2016-09-06 04:15:38

标签: android image android-studio crop

我想在imageview中显示裁剪后的图像,该图像显示为预览,并在显示为预览后,现在我想再次裁剪并在imageView中显示但我不知道想要使用内部相机裁剪和裁剪时我不想修复高度和宽度。

2 个答案:

答案 0 :(得分:0)

由于您没有提到任何具体要求,因此我将使用圆形图像裁剪示例来展示它是如何工作的。因此,图像就像在某张纸上绘制的图片,以便您需要在现实生活中更改图像?CanvasPaintShapes等。{{{{{ 1}}和android通过各种API。

您可以使用Java bitmap matrix pixels,您可以使用'Canvas'课程进行绘画,裁剪,造型等。

步骤:
1.从您的图像或drawable等获取位图 2.创建一个新的位图,其中Config.ARGB_8888均值设置为alpha,RGB通道为8位大小的新位图,以提高效率。
3.为圆角样式创建新的BitmapShader 4.创建一个新的Paint,其中包含要绘制的样式和颜色信息 5.创建一个新的Canvas,使用输入处理绘制操作 6.使用Canvas和半径在Paint对象上调用'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);

答案 1 :(得分:0)

我可能会使用ImageMagick。

https://github.com/paulasiimwe/Android-ImageMagick

这是一个高质量,灵活的图像处理库。我没有在Android中使用它,但是从命令行和C#中它非常简单。我相信MagickImage课程是你需要的主要课程。