js canvas 照片旋转 demo详解编程语言
2023-06-13 09:20:25 时间
meta charset="utf-8"
meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/ !--以手机屏幕为标准,禁止放大缩小--
meta name="format-detection" content="telephone=no"/ !--屏蔽IOS下自动转换数字为手机链接--
meta name="apple-mobile-web-app-capable" content="yes" / !--IOS应用模式,自动隐藏默认的工具栏和菜单栏--
meta name="browsermode" content="application" !--UC应用模式--
meta name="x5-page-mode" content="app" !--腾讯X5浏览器应用模式--
title 照片旋转 /title
/head
body
input type="file" onchange="fileChangeEvent(this.files[0]);"/ br br
img src="./1.jpg"/ br br
canvas /canvas
input type="button" value="90度"/ br br
input type="button" value="180度"/ br br
input type="button" value="270度"/ br br
input type="button" value="返回"/ br br
/body
script type="text/javascript"
var img = document.querySelector("img");
var canvas = document.querySelector("canvas");
var context = canvas.getContext(2d);
var imgHeight = 200;
var imgWidth = 200;
img.onload = function(){
imgHeight = img.height;
imgWidth = img.width;
function fileChangeEvent(file){
var URL = window.URL || window.webkitURL;
img.src = URL.createObjectURL(file);
img.onload = function(){
imgHeight = img.height;
imgWidth = img.width;
function rotate90()
img.style.width = "initial"; // 防止 css 导致旋转时的图片宽高比拉伸而导致的模糊问题
canvas.width = imgHeight;
canvas.height = imgWidth;
context.translate(canvas.width * 0.5, canvas.height * 0.5);
context.rotate(Math.PI * 0.5);
context.translate(-canvas.height * 0.5, -canvas.width * 0.5);
context.drawImage(img, 0, 0, imgWidth, imgHeight);
img.src = canvas.toDataURL("image/png");
function rotate180()
canvas.width = imgWidth;
canvas.height = imgHeight;
context.rotate(Math.PI);
context.translate(-canvas.width, -canvas.height);
context.drawImage(img, 0, 0, imgWidth, imgHeight);
img.src = canvas.toDataURL("image/png");
function rotate270()
img.style.width = "initial"; // 防止 css 导致旋转时的图片宽高比拉伸而导致的模糊问题
canvas.width = imgHeight;
canvas.height = imgWidth;
// 以中心点为基准旋转,所有的旋转只改变了 canvas 画笔的坐标轴,对画布没有任何影响
context.translate(canvas.width * 0.5, canvas.height * 0.5);
context.rotate(-Math.PI * 0.5);
context.translate(-canvas.height * 0.5, -canvas.width * 0.5);
context.drawImage(img, 0, 0, imgWidth, imgHeight);
img.src = canvas.toDataURL("image/png");
document.querySelectorAll("input[type=button]")[0].onclick = function(){
rotate90();
document.querySelectorAll("input[type=button]")[1].onclick = function(){
rotate180();
document.querySelectorAll("input[type=button]")[2].onclick = function(){
rotate270();
document.querySelectorAll("input[type=button]")[3].onclick = function(){
history.back();
/script
/html
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/8789.html
cjava相关文章
- 页面跳转进度条JS实现详解编程语言
- Node.js批量抓取高清妹子图片 增强版详解编程语言
- JS实现将人民币数字转换成大写形式详解编程语言
- js文件格式校验详解编程语言
- JS检查浏览器类型和版本详解编程语言
- js模仿java的Map集合,实现功能详解编程语言
- Raphaël 鼠标拖动,滚轮缩放js代码详解编程语言
- 让文章自动生成章节目录索引的JS代码详解编程语言
- 根据生日的月份和日期计算星座的js代码详解编程语言
- js将人民币金额转换为大写详解编程语言
- JS定时器详解编程语言
- 用js控制cookie(cookie操作类)详解编程语言
- 清楚节点内的空格的JS代码详解编程语言
- 基于html5 localStorage的购物车JS脚本详解编程语言
- JS时间和字符串的相互转换 Date+String详解编程语言
- JS正则表达式从入门到入土(4)—— 预定义类与边界详解编程语言
- 使用html+css+js实现计算器详解编程语言
- 使用JS实现文字搬运工详解编程语言
- 使用html+css+js实现魔性的舞蹈详解编程语言
- js调试工具console.log()方法查看js代码的执行情况详解编程语言
- JS判断值是否是数字详解编程语言
- JS控制文本框只能输入数字和小数点详解编程语言
- JS判断是否为JSON对象及是否存在某字段详解编程语言
- JS中判断undefined和null类型详解编程语言
- JS获取当前日期时间并定时刷新详解编程语言
- JS动态添加表格(二)详解编程语言
- 两段简单的JS代码防止SQL注入详解编程语言
- js 字符串的操作详解编程语言
- js数组去重详解编程语言
- 用JS获取地址栏参数的方法详解编程语言
- thymeleaf 传参到js的onclick事件中详解编程语言
- JS中获取session中传过来的值对象详解编程语言
- js内置的Date对象详解编程语言
- 使用JS操作Oracle数据库探索潜在可能性(js和oracle数据库)
- JS在Oracle中的应用(js如何oracle)