最终想要的结果

思路

1、移动画布中心点

ctx.translate(x,y);//设置画布上的(0,0)位置,也就是旋转的中心点


2、此时旋转画布,会以(x,y)为中心点

3、所以我们需要将图片中心点也转移到(x,y)

ctx.drawImage(img,-img.width/2,-img.height/2);//把图片绘制在旋转的中心点,


4、旋转角度

ctx.rotate(90*Math.PI/180);

实现

function rotate90(imgUrl, type) {return new Promise(function (resolve, reject) {try {// 1. 创建图片,canvas,获取画布var img = new Image(),canvas = document.createElement('canvas'),ctx = canvas.getContext('2d');img.src = imgUrl;// 2. 图片加载完成进行图片编辑img.onload = function () {// 2.1 设置canvas宽高,旋转90° ,宽高互换canvas.width = this.height;canvas.height = this.width;// 2.2 画布中心点(也是起始点)平移至中心(0,0)->(x,y)ctx.translate(canvas.width / 2, canvas.height / 2);// 2.3 画布旋转90°ctx.rotate(270 * Math.PI / 180);// 2.4 绘制图像 图像起始点需偏移负宽高ctx.drawImage(img, -this.width / 2, -this.height / 2);// 2.5返回结果(base64)resolve(canvas.toDataURL(type));};} catch (error) {reject(error);}});

canvas旋转图片相关推荐

  1. canva旋转图片 js_js 使用canvas 旋转 图片

    最左边是原始图片,中间是canvas内容,右边是将canvas内容导出到img标签中 canvas绘图时,确定图片的原始尺寸,不是显示的dom大小,需要创建元素后获得 如果使用dom大小的话,会在绘制 ...

  2. CSS3图片旋转功能transform:rotate以及Canvas旋转示例

    <!DOCTYPE html> <html> <head><title>CSS3旋转图片</title><style>.demo ...

  3. canvas实现图片旋转

    canvas实现图片旋转 前言 代码 前言 在上一篇实现了 canvas实现压缩图片.现在有需求变了,需要将图片旋转,旋转后正确的显示图片的位置(不能被其他元素遮住),等比例显示图片. 简单的实现如下 ...

  4. canvas签名图片旋转

    canvas签名图片旋转 前言 一.实现思路 二.详细代码 总结 前言 当使用canvas完成横屏签名功能时,最后签名图片需要旋转角度,保证图片横铺 一.实现思路 思路是重新创建应该canvas,将图 ...

  5. web手势库AlloyFinger运用( 控制CANVAS中图片移动、缩放、旋转) - 可编辑图片指定区域位置

    注: 苹果手机升级IOS14.1系统后,出现图片写入不了CANVAS画布问题 解决方法:alloy_paper.js 文件查找代码: this.img.crossOrigin = "Anon ...

  6. 小猿圈web前端之移动端Vue+Vant实现上传压缩旋转图片功能

    小猿圈web前端讲师为了大家更好的学习前端知识决定每天分享一个web前端案例,希望对你与学习前端的你有所帮助,今天分享的是移动端Vue+Vant的Uploader实现上传.压缩.旋转图片等功能的详细介 ...

  7. java 旋转图片_Java实现图片翻转以及任意角度旋转

    最近几天在做一个项目,因为涉及到了图片(绝大部分都不是整图,是把一张张的大图切成小图,也就是Title)的翻转以及90°旋转,弄得焦头烂额.在网上搜索好几天,发现用到的方法都是比较公式化的,对于只是在 ...

  8. vant上传图片 转二进制_土旦:移动端 Vue+Vant 的Uploader 实现 :上传、压缩、旋转图片-Go语言中文社区...

    data() {return{ files: { name:"", type:""}, headerImage:null, picValue:null, upI ...

  9. 关于bitamap旋转图片全黑

    网上搜了一下bitmap旋转方法,一般分为两种: 一. Bitmap adjustPhotoRotation(Bitmap bm, final int orientationDegree) { // ...

最新文章

  1. QIIME 2教程. 08差异丰度分析gneiss(2021.2)
  2. 马斯克39页火星计划PPT曝光,我们能学到什么
  3. Winsock开发网络通信程序的经典入门
  4. PHP在WPS中的应用,PHP+Laravel的简单应用教程【ajax的使用】,wps的使用教程
  5. 熊猫TV直播H5播放器架构探索
  6. 【kafka系列】centos7系统安装kafka
  7. 品‮方牌‬可以利用视‮号频‬做什么
  8. 最简单的flex bison例子
  9. 如何使用PS改变只有一种颜色图片的颜色
  10. docker the input device is not a TTY. If you are using mintty, try prefixing the command with ‘winp
  11. NetCore mysql Connection open error . The given key ‘25971‘ was not present in the dictionary
  12. 当500万只能作为摇号的诚意金来临时,你的想法是什么?
  13. word文件怎么另存
  14. mysql登录其他电脑_如何连接另一台电脑的mysql数据库
  15. 分析nmn抗衰老的真实性,nmn的效果到底怎么样
  16. SpringMVC整合mybatis(终结版)
  17. 从IO谈论编程的基础
  18. 奇思妙想:高大上的高并发其实可以利用Zuul完成
  19. 大二学计算机专业职业规划,大学生计算机专业职业生涯规划2000字
  20. 卫片图斑_推进土地卫片图斑整治工作

热门文章

  1. 2019 第十届蓝桥杯省赛C/C++大学B组 试题+题解
  2. Python数据分析入门—安装环境
  3. Flink——入门WordCount程序
  4. 苹果手机文件连接服务器显示离线,查找iphone一直显示30分钟前的旧位置,是代表设备短暂接入后又离线了吗?...
  5. 【代码整洁之道】第六章:对象和数据结构
  6. Linux包管理工具apt,Linux RPM、YUM、APT包管理工具
  7. 基于Docker、Jenkins实现自动化部署
  8. MySQL万字精华总结!mysql操作日志
  9. sax解析雅虎天气api
  10. Vue学习教程1--Vue核心