生成圆形图片

根据Bitmap生成圆形的Bitmap,通过图片的宽高确定圆形图片的圆心半径等,再生成圆形的图片,主要代码如下

public Bitmap toRoundBitmap(Bitmap bitmap) {
		try {
			int width = bitmap.getWidth();
			int height = bitmap.getHeight();
			float roundPx;
			float left, top, right, bottom, dst_left, dst_top, dst_right, dst_bottom;
			if (width <= height) {
				roundPx = width / 2;
				top = 0;
				bottom = width;
				left = 0;
				right = width;
				height = width;
				dst_left = 0;
				dst_top = 0;
				dst_right = width;
				dst_bottom = width;
			} else {
				roundPx = height / 2;
				float clip = (width - height) / 2;
				left = clip;
				right = width - clip;
				top = 0;
				bottom = height;
				width = height;
				dst_left = 0;
				dst_top = 0;
				dst_right = height;
				dst_bottom = height;
			}

			Bitmap output = Bitmap
					.createBitmap(width, height, Config.ARGB_8888);
			Canvas canvas = new Canvas(output);

			final int color = 0xff424242;
			final Paint paint = new Paint();
			final Rect src = new Rect((int) left, (int) top, (int) right,
					(int) bottom);
			final Rect dst = new Rect((int) dst_left, (int) dst_top,
					(int) dst_right, (int) dst_bottom);
			final RectF rectF = new RectF(dst);

			paint.setAntiAlias(true);

			canvas.drawARGB(0, 0, 0, 0);
			paint.setColor(color);
			canvas.drawRoundRect(rectF, roundPx, roundPx, paint);

			paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
			canvas.drawBitmap(bitmap, src, dst, paint);
			return output;
		} catch (Exception ex) {
			Log.v("ToRoundBitmap", "error:" + ex.getMessage());
			return bitmap;
		}
时间: 2024-10-29 19:06:24

生成圆形图片的相关文章

压缩图片操作和生成圆形图片

1.对本地相册库或相机拍摄下来的图片进行压缩处理,传进来的参数分别有:要压缩的图片和压缩后的大小. //压缩图片 + (UIImage*)imageWithImageSimple:(UIImage*)image scaledToSize:(CGSize)newSize { // Create a graphics image context UIGraphicsBeginImageContext(newSize); // Tell the old image to draw in this ne

RoundedBitmapDrawable生成圆角图片

Bitmap src = BitmapFactory.decodeResource(getResources(), imageId); //获取Bitmap图片 RoundedBitmapDrawable roundedBitmapDrawable = RoundedBitmapDrawableFactory.create(getResources(), src); //创建RoundedBitmapDrawable对象 roundedBitmapDrawable.setCornerRadius

自定义圆形图片

圆形图片相必是项目开发中也是不少用的一个知识点吧. 那么这里学习一下简单的制作圆形图片,主要运用 BitmapShader 类的知识来实现 一.首先,了解一下 BitmapShader 类 BitmapShader是Shader的子类,可以通过Paint.setShader(Shader shader)进行设置 看一下BitmapShader 的构造方法 BitmapShader bitmapShader = new BitmapShader(bitmap,TileMode, TileMode)

自动生成圆形装盘奖励图片

每次做抽奖活动的时候,会有一张圆形的奖励图片.这个图片有时候运营偶尔修改一下还可以接受,但是万一很频繁的更换里面的内容的话,那每次都做一次修改那就很浪费时间,然后就想到了用canvas来自动生成这张图片.这样就节省了很多时间. 然后就需要用到一张固定尺寸的圆形转盘的背景,各种素材若干张,然后就可以自己手动上传图片生成这张图片了. 这个主要就是用到了canvas的rotate,translate,drawImage的方法就可以完成了,注意这个仅提供一个demo,可以自己再优化的哦,至于怎么优化,用

如何生成圆形的图片

如何生成圆形的图片呢?今天就总结一下: 1.添加Photo.m和Phone.h两个文件 2.添加头文件Photo.h 3.创建圆角UIImageView self.headImageView = [[UIImageView alloc]initWithFrame:CGRectMake(124, 40, 72, 72)]; self.headImageView.layer.borderWidth = 2.0;//边宽 self.headImageView.layer.borderColor = [

PHP 图片处理,生成缩略图、圆形图片

<?php /* * name:娄喜贺 */ class MyUpload{ var $saveName;// 保存名 var $tmpPath;// 临时保存路径 var $savePath;// 保存路径 var $fileFormat = array('gif','jpg','png','doc','application/octet-stream');// 文件格式&MIME限定 var $overwrite = 0;// 覆盖模式 var $maxSize = 0;// 文件最大字

iOS实现头像选取(照相或者图片库)、大小等比缩放、生成圆形头像

//弹出actionsheet.选择获取头像的方式//从相册获取图片 -(void)takePictureClick:(UIButton *)sender { // /*注:使用,需要实现以下协议:UIImagePickerControllerDelegate, // UINavigationControllerDelegate // */ // UIImagePickerController *picker = [[UIImagePickerController alloc]init]; //

iOS开发Quzrtz2D 十:圆形图片的绘制以及加边框圆形图片的绘制

一:圆形图片的绘制 @interface ViewController () @property (weak, nonatomic) IBOutlet UIImageView *imageV; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; /** * UIBezierPath:绘制路径,就是根据路径对图形上下文进行构造 */ //0.加载图片 UIImage *image = [UII

Android圆角图片和圆形图片实现总结

1. 概述 Android研发中经常会遇见圆角或者圆形图片的展示,但是系统中ImageView并不能直接支持,需要我们自己做一些处理,来实现圆角图片或者圆形图片,自己最近对这块的实现做了一下总结,看一下几种实现方法. 图层叠加,上层覆盖一层蒙版,遮挡图片,让图片展示出圆角或者圆形效果 重新绘制 BitmapShader Xfermode RoundedBitmapDrawable CardView,使用官方控件,自动裁剪,达到圆角或者圆形效果.(5.0以上系统) 第一种方法,很傻,不太优雅,不推