Js+Canvas做出图片压缩

这次给大家带来Js+Canvas做出图片压缩,Js+Canvas做出图片压缩的注意事项有哪些,下面就是实战案例,一起来看一下。

/*  * 图片压缩 * img    原始图片 * width   压缩后的宽度 * height  压缩后的高度 * ratio   压缩比率  */ function compress(img, width, height, ratio) {           var canvas, ctx, img64;   canvas = document.createElement('canvas');           canvas.width = width;   canvas.height = height;       ctx = canvas.getContext("2d");               img64 = canvas.toDataURL("image/jpeg", ratio);       return img64; }

登录后复制

上面是一个图片压缩函数,返回 base64 格式的图片数据。 其中压缩比率取值(0 – 1 之间)越大图片质量越高。建议不要将图片转为 png 格式,因为转为 png 格式,图片的 base64 比转为 jpeg 的要长不少。下面是实际调用:

var image = new Image();image.src = "/img/test.jpg";      image.onload = function(){  var img64 = compress(image, 500, 400, 0.7);  document.getElementById("test").src = img64;}

登录后复制

注意: 压缩方法的调用以及图片src赋值必须放在图片的 onload 方法里面。因为只有等图片加载完成后才能进行压缩处理,从而转换为base64 进行赋值。 如果放在 onload 方法外面,则可能压缩代码无效,或者会生成一张纯黑色的图片。

相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

推荐阅读:

angularJS+Ionic在移动端进行图片上传(附代码)

Particles.js实现粒子动态背景动画

以上就是Js+Canvas做出图片压缩的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2771475.html

(0)
上一篇 2025年3月8日 12:58:25
下一篇 2025年3月8日 12:58:30

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • js高效率的与服务器时间同步

    这次给大家带来js高效率的与服务器时间同步,js高效率与服务器时间同步的注意事项有哪些,下面就是实战案例,一起来看一下。 方案1:每次倒计时去服务端请求时间 //开启定时器var timer = setInterval(function (…

    编程技术 2025年3月8日
    200
  • js数组如何实现权重概率排序

    这次给大家带来js数组如何实现权重概率排序,js数组实现权重概率排序的注意事项有哪些,下面就是实战案例,一起来看一下。 今天写了一个js控制页面轮播的功能,如果仅仅使用队列很简单,但是考虑到为每一个页面分配权重的是否变的异常复杂,使用swi…

    编程技术 2025年3月8日
    200
  • Vue.js中使用Mixins步奏详解

    这次给大家带来Vue.js中使用Mixins步奏详解,Vue.js中使用Mixins的注意事项有哪些,下面就是实战案例,一起来看一下。 一个很常见的场景: 有两个非常相似的组件, 它们拥有非常相似的基本功能, 但是它们之间又有足够的不同的地…

    编程技术 2025年3月8日
    200
  • JS面向对象的使用详解

    这次给大家带来JS面向对象的使用详解,JS面向对象使用的注意事项有哪些,下面就是实战案例,一起来看一下。 数据类型 在JavaScript中,数据类型分为两类: 原始类型 保存一些简单数据,如true,5等。JavaScript共有5中原始…

    编程技术 2025年3月8日
    200
  • clipboard.js实现复制功能步奏详解

    这次给大家带来clipboard.js实现复制功能步奏详解,clipboard.js实现复制功能的注意事项有哪些,下面就是实战案例,一起来看一下。 最近在工作中有一个需求,就是需要使用一个按钮实现相应内容的复制。在网上找了很多解决方案,最后…

    编程技术 2025年3月8日
    200
  • 用requireJS添加返回顶部功能

    这次给大家带来用requireJS添加返回顶部功能,用requireJS添加返回顶部功能的注意事项有哪些,下面就是实战案例,一起来看一下。 本文实例讲述了requireJS模块化实现返回顶部功能的方法。分享给大家供大家参考,具体如下: 引用…

    编程技术 2025年3月8日
    200
  • AngularJS注册表单验证的步奏详解

    这次给大家带来AngularJS注册表单验证的步奏详解,AngularJS注册表单验证的注意事项有哪些,下面就是实战案例,一起来看一下。 //email验证 $(function(){ //input标签获取焦点/失去焦点时调用方法 $(“…

    编程技术 2025年3月8日
    200
  • Node.js往MySQL大量注入数据

    这次给大家带来Node.js往MySQL大量注入数据,Node.js往MySQL大量注入数据的Node.js有哪些,下面就是实战案例,一起来看一下。 1.数据库连接 var mysql = require(‘mysql’);// 数据库信息…

    编程技术 2025年3月8日
    200
  • 原生JS做出一个音乐播放器

    这次给大家带来原生JS做出一个音乐播放器,原生JS做出一个音乐播放器的注意事项有哪些,下面就是实战案例,一起来看一下。 前  言          最近在复习JS,觉得音乐播放器是个挺有意思的东西,今天就来用我们最原生的JS写一个小小的音乐…

    编程技术 2025年3月8日
    200
  • JavaScript面向对象与this指向(附代码)

    这次给大家带来JavaScript面向对象与this指向(附代码),使用JavaScript面向对象与this指向的注意事项有哪些,下面就是实战案例,一起来看一下。 我们的程序语言经历了从“面向机器”、到“面向过程”、再到“面向对象”的一个…

    编程技术 2025年3月8日
    200

发表回复

登录后才能评论