【发布时间】:2011-07-22 21:28:52
【问题描述】:
我已经从位图中选择了一部分,我正在将选定的部分复制到同一个位图中。现在我想在复制后删除选定的部分。怎么做?请帮帮我..
【问题讨论】:
-
@Bill-the-Lizard:这不是一个重复的问题。
我已经从位图中选择了一部分,我正在将选定的部分复制到同一个位图中。现在我想在复制后删除选定的部分。怎么做?请帮帮我..
【问题讨论】:
万一有人试图解决同样的问题,有一个更好的解决方案:Bitmap.createBitmap(Bitmap, int x, int y, int width, int height)。例如,如果您需要从位图的每一侧裁剪 10 个像素,则使用以下命令:
Bitmap croppedBitmap = Bitmap.createBitmap(originalBitmap, 10, 10, originalBitmap.getWidth() - 20, originalBitmap.getHeight() - 20);
【讨论】:
我知道的最简单的方法是使用 Graphics 包中的 XFer 模式处理。下面的函数将从 (30,30) 到 (100,100) 的区域切割为从资源加载的 320x480 图像。适应坐标动态变化:
private Bitmap cropBitmap1() {
Bitmap bmp2 = BitmapFactory.decodeResource(this.getResources(), R.drawable.image1);
Bitmap bmOverlay = Bitmap.createBitmap(320, 480, Bitmap.Config.ARGB_8888);
Paint paint = new Paint();
paint.setXfermode(new PorterDuffXfermode(Mode.CLEAR));
Canvas canvas = new Canvas(bmOverlay);
canvas.drawBitmap(bmp2, 0, 0, null);
canvas.drawRect(30, 30, 100, 100, paint);
return bmOverlay;
}
【讨论】: