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源 ...
最新文章
- 机器学习(17)无监督学习 -- K-means算法与性能评估
- demo flink写入kafka_Flink结合Kafka实时写入Iceberg实践笔记
- 学习笔记--Spark
- 微分求积:复化梯形、复化辛浦生
- 十进制小数化为二进制小数的方法是什么_八进制转换成十进制,十进制转换成八进制...
- Linux ln命令、软链接和硬链接的区别
- 知识图谱最新权威综述论文解读:实体发现
- [西瓜书习题] 第二章 模型评估与选择
- 实例:从一个文件中读取销售记录,并合并生成销售报告,实现销售册数,总销售额,平均售价...
- (88)FPGA二分频设计,面试必问(十二)(第18天)
- AcWing 1208. 翻硬币
- flash相册制作软件模板_儿童照片相册模板 怎么制作炫酷视频相册
- Lesson 002 —— 网络七层模型
- java对象复制 忽略空值_优秀!高级Java都这样优雅处理空值
- linux下无法正常打开pdf文件的解决方法
- 如何免费编辑PDF文档?
- SpringBoot缓存管理
- unity, AnimatorCullingMode踩坑
- Java 本地内存 直接内存 元空间
- 【数据压缩】作业1-1:对浊音、清音、爆破音进行音频分析