图片生成:从长方形到正圆形及圆角矩形的艺术

作者:起个名字好难2023.12.05 17:31浏览量:10

简介:Android长方形图片生成正圆形,以及矩形图片生成圆角

Android长方形图片生成正圆形,以及矩形图片生成圆角
在Android开发中,我们经常需要处理图像的形状和样式。例如,我们可能需要将长方形的图片裁剪成正圆形,或者将矩形的图片裁剪成带有圆角的样式。这些操作可以通过使用Android的Bitmap类和Canvas类来实现。下面,我们将详细介绍这两个操作的实现过程。
一、Android长方形图片生成正圆形

  1. 首先,我们需要创建一个新的Bitmap对象,其大小与原始图片相同。我们可以通过调用Bitmap.createBitmap()方法来完成这个操作。
    1. Bitmap originalBitmap = ... // 这是原始的图片
    2. int size = originalBitmap.getWidth(); // 假设我们希望生成的圆形的直径与原始图片的宽度相同
    3. Bitmap roundBitmap = Bitmap.createBitmap(size, size, Bitmap.Config.ARGB_8888);
  2. 接下来,我们需要创建一个新的Canvas对象,并使用它来绘制新的圆形图片。我们可以通过调用Canvas的drawBitmap()方法来完成这个操作。
    1. Canvas canvas = new Canvas(roundBitmap);
    2. float radius = size / 2; // 这是生成的圆形的半径
    3. Paint paint = new Paint();
    4. paint.setAntiAlias(true); // 这将使生成的圆形更平滑
    5. canvas.drawCircle(radius, radius, radius, paint);
  3. 最后,我们可以使用新的圆形图片来替换原始的图片。
    1. originalBitmap.recycle(); // 释放原始图片所占用的内存
    2. originalBitmap = roundBitmap;
    二、Android矩形图片生成圆角
  4. 与生成圆形图片相似,我们首先需要创建一个新的Bitmap对象。但是,这次我们需要为其指定一个特定的形状——圆形。我们可以通过在Bitmap.Config中指定ARGB_8888格式来完成这个操作。
    1. Bitmap originalBitmap = ... // 这是原始的图片
    2. int size = originalBitmap.getWidth(); // 假设我们希望生成的圆角的半径与原始图片的宽度相同
    3. Bitmap roundedBitmap = Bitmap.createBitmap(size, size, Bitmap.Config.ARGB_8888);
  5. 然后,我们需要创建一个新的Canvas对象,并使用它来绘制带有圆角的图片。我们可以通过调用Canvas的drawBitmap()方法来完成这个操作。在这个过程中,我们需要使用一个特定的Paint对象,该对象可以设置圆角的半径。
    1. Canvas canvas = new Canvas(roundedBitmap);
    2. float radius = size / 2; // 这是生成的圆角的半径
    3. Paint paint = new Paint();
    4. paint.setAntiAlias(true); // 这将使生成的圆角更平滑
    5. canvas.drawRoundRect(new RectF(0, 0, size, size), radius, radius, paint);