createBitmap 简单裁剪 android
createBitmap simple crop android
我使用的代码:
Bitmap cropImg = Bitmap.createBitmap(bitmap, cropW, cropH, newWidth, newHeight);
不是 java 程序员,但据我所知,一切都是从左上角开始的。
我的尺寸是
cropW: '696',
cropH: '72',
newWidth: '1200',
newHeight:'1800',
但我最终得到了图像的左上角..
我真正想要的是给它 4 分,它会去掉中间的图像。
我将其用作 Cordova/Phonegap 的插件,如果它有所作为。
任何帮助或解释都会有所帮助。
谢谢
使用下面的函数
public Bitmap getCircleBitmap(Bitmap bm) {
int sice = Math.min((bm.getWidth()), (bm.getHeight()));
Bitmap bitmap = ThumbnailUtils.extractThumbnail(bm, sice, sice);
Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(output);
int color = 0xff424242;
final Paint paint = new Paint();
final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());
final RectF rectF = new RectF(rect);
paint.setAntiAlias(true);
paint.setDither(true);
paint.setFilterBitmap(true);
paint.setColor(color);
canvas.drawARGB(0, 0, 0, 0);
canvas.drawOval(rectF, paint);
//canvas.drawCircle(50, 50, 50, paint);
paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
canvas.drawBitmap(bitmap, rect, rect, paint);
return output;
}
我使用的代码:
Bitmap cropImg = Bitmap.createBitmap(bitmap, cropW, cropH, newWidth, newHeight);
不是 java 程序员,但据我所知,一切都是从左上角开始的。
我的尺寸是
cropW: '696',
cropH: '72',
newWidth: '1200',
newHeight:'1800',
但我最终得到了图像的左上角..
我真正想要的是给它 4 分,它会去掉中间的图像。
我将其用作 Cordova/Phonegap 的插件,如果它有所作为。
任何帮助或解释都会有所帮助。
谢谢
使用下面的函数
public Bitmap getCircleBitmap(Bitmap bm) {
int sice = Math.min((bm.getWidth()), (bm.getHeight()));
Bitmap bitmap = ThumbnailUtils.extractThumbnail(bm, sice, sice);
Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(output);
int color = 0xff424242;
final Paint paint = new Paint();
final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());
final RectF rectF = new RectF(rect);
paint.setAntiAlias(true);
paint.setDither(true);
paint.setFilterBitmap(true);
paint.setColor(color);
canvas.drawARGB(0, 0, 0, 0);
canvas.drawOval(rectF, paint);
//canvas.drawCircle(50, 50, 50, paint);
paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
canvas.drawBitmap(bitmap, rect, rect, paint);
return output;
}