HTML5 利用JavaScript 实现图像基本操作
2017-05-13 17:33
387 查看
前言
近期利用业余时间,我用JavaScript实现了一下HTML5网页端的图像处理基本操作,其实,主要是用jimp 这个JavaScript库。代码
本文,主要实现了图像的放大、缩小、旋转和亮度调节功能。具体实现代码,如下所示。<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Jimp browser example 1</title> </head> <body> <div style="text-align:center;"> <img src="https://upload.wikimedia.org/wikipedia/commons/0/01/Bot-Test.jpg" id="myImage" /> <br /> <button onclick="getSrcImg()">原图</button> <button onclick="zoomInImg()">放大</button> <button onclick="zoomOutImg()">缩小</button> <button onclick="rotateImgClockwise()">顺时针旋转</button> <button onclick="rotateImgAntiClock()">逆时针旋转</button> 亮度调节因子: <input id="Bfactor" type="number" name="bdv" mix="-1" max="1" value=0.2 /> <button onclick="brightenImg()">亮度调节</button> </div> <script src="./lib/jimp.min.js" type="text/javascript"></script> <script type="text/javascript"> var myImage = document.getElementById("myImage"); function getSrcImg() { var mySrc = "https://upload.wikimedia.org/wikipedia/commons/0/01/Bot-Test.jpg"; myImage.setAttribute("src", mySrc); } function zoomInImg() { var scale = 1.2; var width = myImage.width * scale; var height = myImage.height * scale; Jimp.read(myImage.src, function (err, image) { image.resize(width, height, Jimp.RESIZE_BILINEAR) .getBase64(Jimp.MIME_JPEG, function (err, src) { myImage.setAttribute("src", src); }); }).catch(function (err) { console.error(err); }); } function zoomOutImg() { var scale = 0.8; var width = myImage.width * scale; var height = myImage.height * scale; Jimp.read(myImage.src, function (err, image) { image.resize(width, height, Jimp.RESIZE_NEAREST_NEIGHBOR) .getBase64(Jimp.MIME_JPEG, function (err, src) { myImage.setAttribute("src", src); }); }).catch(function (err) { console.error(err); }); } function rotateImgClockwise() { var degree = 90; Jimp.read(myImage.src, function (err, image) { image.rotate(degree, false) .getBase64(Jimp.MIME_JPEG, function (err, src) { myImage.setAttribute("src", src); }); }).catch(function (err) { console.error(err); }); } function rotateImgAntiClock() { var degree = -90; Jimp.read(myImage.src, function (err, image) { image.rotate(degree, false) .getBase64(Jimp.MIME_JPEG, function (err, src) { myImage.setAttribute("src", src); }); }).catch(function (err) { console.error(err); }); } function brightenImg() { var bfactor = document.getElementById("Bfactor"); var factor = parseFloat(bfactor.value); if (isNaN(factor)) { alert("亮度调节因子输入值为空!"); } else { if (factor < -1 || factor > 1) { alert("亮度调节因子输入值范围为-1到1的小数!"); } else { Jimp.read(myImage.src, function (err, image) { image.brightness(factor) // -1 ~ +1 .getBase64(Jimp.MIME_JPEG, function (err, src) { myImage.setAttribute("src", src); }); }).catch(function (err) { console.error(err); }); } } } </script> </body> </html>
结果
初始化原图->放大
原图->缩小
原图->顺时针旋转
原图->逆时针旋转
原图->亮度调节变暗
原图->亮度调节变亮
jimp
jimp.min.js 按照jimp的README进行编译获取。相关文章推荐
- Qt可显示基本的图像类型,利用QImage、QPxmap类可以实现图像的显示,并且利用类中的方法可以实现图像的基本操作(缩放、旋转)。
- C语言数组实现栈的基本操作,并利用O(1)求出栈中最小元素
- HTML5 学习(二 CANVAS 的基本操作 【JavaScript绘制】)
- 图像的属性,利用OpenCV进行图像的基本操作
- IO流的基本操作规律以及利用IO流实现音频文件的切割与合并
- 每日一题_JavaScript.利用Js操作frameset框架集对象实现购物车?
- Canvas---Canvas图像加载、利用javascript回调机制实现一个图片加载器
- javascript实现数据结构: 树和二叉树,二叉树的遍历和基本操作
- 利用HTML5 Canvas和Javascript实现的蚁群算法求解TSP问题演示
- javascript利用控件对windows的操作实现原理与应用
- Make Things Move -- Javascript html5版(二)实现最基本的Sprite类和stage管理对象
- javascript和HTML5利用canvas构建猜牌游戏实现算法
- 利用html5和JavaScript实现手机端滑动菜单的交互概念
- 利用javascript剪裁图片(也许CSDN也是如此实现图像上传剪裁)
- 利用JavaScript实现js对user用户的分页和实现js对用户的增删改查操作
- 利用C#2005实现数据表的基本操作
- 利用开源HTML5引擎lufylegend.js结合javascript实现的五子棋人机对弈
- Java与JavaScript 完美实现字符串拆分(利用数组存储)与合并的互逆操作
- 利用顺序结构实现线性表的基本操作
- 利用HTML5 Canvas和Javascript实现的蚁群算法求解TSP问题演示