cropper图片编辑插件绘制圆形图片
在上传图片前需要对图片进行编辑,我选用的是cropperjs插件
绘制圆图的主要思路首先是将图片选取框中的可见区域设置为圆形,再在上传图片时在原图的基础上通过JS选取出一个圆图,再将选取的圆图上传到后台接口
1.通过CSS设置cropper选取框的样式为圆形
.cropper-view-box, .cropper-face {border-radius: 50%;
}
2.通过canvas在原图的基础上选取一个圆图
function getRoundedCanvas(){ var crop=(...).data("cropper"); //获取crop对象var sourceCanvas=crop.getCroppedCanvas();var canvas = document.createElement('canvas');var context = canvas.getContext('2d');var width = sourceCanvas.width;var height = sourceCanvas.height;canvas.width = width;canvas.height = height;context.imageSmoothingEnabled = true;context.drawImage(sourceCanvas, 0, 0, width, height);context.globalCompositeOperation = 'destination-in';context.beginPath();context.arc(width / 2, height / 2, Math.min(width, height) / 2, 0, 2 * Math.PI, true);context.fill();return canvas;
}
通过步骤2即可得到一个圆图的canvas,这里需要注意的是,如果通过toDataUrl方式转图片时,在格式为jpg的情况下,得到的圆图的底色可能会变成黑色,这是因为在转jpg的过程中,原先的透明度属性会丢失,这里我是通过统一设置图片转换格式为png格式来解决的,下面附上代码
var dataurl=canvas.toDataURL("image/png");
var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);
while(n--){u8arr[n] = bstr.charCodeAt(n);
}
var filename=(...);
var f=new File([u8arr],filename,{type:"image/png"});
过程中查阅的文档:
1. cropperjs/crop-a-round-image.html at master · fengyuanchen/cropperjs · GitHub:点击打开链接
2. cropperjs:cropper文档
3. canvas参考手册:w3school-canvas参考手册
cropper图片编辑插件绘制圆形图片相关推荐
- UIImageView绘制圆形图片
参考网上的资料,自实现了一个UIImageView绘制圆形图片功能. 先看效果: 代码如下: - (void)buttonAction:(id)sender { //方式1,见上图的方式1效果.通过i ...
- quartz2D 如何绘制圆形图片, 及圆环图片
转载自:http://www.cnblogs.com/yuwei0911/p/5277886.html -(void)touchesBegan:(NSSet<UITouch *> *)to ...
- android绘制圆形图片、圆圈以及图片缩放
这两天做开发,需要将图片资源做成圆形,并且要对图片进行缩放,研究了半天,终于整出来了,效果如下: 代码如下: package com.android.mywidget; import android. ...
- android 绘制圆形图片
1.自定义CircleImageView,加载即可使用 import android.content.Context; import android.content.res.TypedArray; i ...
- Android绘制圆形图片的方法
1.使用Xfermode 相交模式 见:http://blog.csdn.net/zcn596785154/article/details/79180145 2.通过裁剪画布区域实现 Canvas类提 ...
- Canvas 绘制圆形图片、绘制圆角矩形图片
前言 在 Canvas 中我们常常遇到的一个需求 绘制一个圆形或者一个圆角矩形图像,常用于展示用户头像,我们知道 CSS 有 border-radius 属性,但是 Canvas 是没有的~
- 如何用html5绘制圆形图片,javascript – 如何使用html5画布绘制连续的圆形图案
我有这个图像: 我想用图像作为模式绘制.当我在画布上得到一个像这样的结果: 但我需要输出 所以我的问题是: JS var source, source_ctx, sleeve, sleeve_ctx, ...
- QPainter QPixmap 绘制圆形图片
一.效果图 二.代码 #include "roungimg.h" #include "ui_roungimg.h" #include <QPainter& ...
- Android 自定义圆形图片 CircleImageView
1.效果预览 1.1.布局中写自定义圆形图片的路径即可 1.2.然后看一看图片效果 1.3.原图是这样的 @mipmap/ic_launcher 2.使用过程 2.1.CircleImageView源 ...
最新文章
- OpenCV | 二值图像分析的技巧都在这里
- 网络编程中设计并发服务器,使用多进程 与 多线程 ,请问有什么区别?
- Python sys.stdout sys.stdin
- RabbitMQ开发详解
- java中springdi_java中spring入门
- ajax离开页面方法,如果用户在页面加载完成之前离开页面,则触发jQuery ajaxError()处理程序...
- error LNK2019: unresolved external symbol _main referenced in function ___tmainCRTStartup
- 13.vim 全局替换路径
- 均方根误差有没有单位_mse均方误差是否有单位
- FSM有限状态机(三段式)-Verilog实现
- 利用fiddler抓包工具测试APP及高级应用
- java 物联网 云计算_传智播客Java JavaEE+物联网云计算 就业班
- 计算机程序设计员国家职业资格三级(高级)操作技能考核试卷-四川考场
- 基于微信小程序的校园外卖订餐个性化推荐系统
- 6 模型的属性与功能
- 大促中为什么需要可视化监控大屏?
- 如何用python turtle 画出奥运五环图
- c basic library framework - simplec 2.0.0
- 矩阵矩阵的维度矩阵按某一维度进行拼接
- Java 43---SpringMVC框架(1)