篇文章給大家帶來的內容是關于canvas實現壓縮圖片的代碼示例,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。// 對圖片進行壓縮
function compress(imgPath) {
var image=new Image();
//新建一個img標簽(還沒嵌入DOM節點)
image.src=imgPath;
image.onload=function() {
var canvas=document.createElement('canvas');
var context=canvas.getContext('2d');
var imageWidth=image.width / 3;
//壓縮后圖片的大小
var imageHeight=image.height / 3;
var data='';
canvas.width=imageWidth;
canvas.height=imageHeight;
context.drawImage(image, 0, 0, imageWidth, imageHeight);
data=canvas.toDataURL('image/jpeg')
//壓縮完成
$(".srcDiscernImg").attr("src", data);
console.log("渲染。。。。");
}
}
本篇文章到這里就已經全部結束了,更多精彩內容大家可以關注的HTML5視頻教程欄目!!!
以上就是canvas實現壓縮圖片的代碼示例的詳細內容,更多請關注其它相關文章!
更多技巧請《轉發 + 關注》哦!
篇文章給大家帶來的內容是關于HTML5網頁水印SDK的實現代碼示例,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。
在網站瀏覽中,常常需要網頁水印,以便防止用戶截圖或錄屏暴露敏感信息后,追蹤用戶來源。如我們常用的釘釘軟件,聊天背景就會有你的名字。那么如何實現網頁水印效果呢?
網頁水印SDK,實現思路
1.能更具獲取到的當前用戶信息,如名字,昵稱,ID等,生成圖片水印
2.生成一個Canvas,覆蓋整個窗口,并且不影響其他元素
3.可以修改字體間距,大小,顏色
4.不依賴Jquery
5.需要防止用戶手動刪除這個Canvas
實現分析
初始參數
size: 字體大小
color: 字體顏色
id: canvasId
text: 文本內容
density: 間距
clarity: 清晰度
supportTip: Canvas不支持的文字提示
生成Canvas
根據id生成Canvas,畫布大小為window.screen大小,若存在原有老的Canvas,清除并重新生成。
畫布固定定位在可視窗口,z-index為-1
let body=document.getElementsByTagName('body');
let canvas=document.createElement('canvas');
canvas.style.cssText='position: fixed;width: 100%;height: 100%;left:0;top:0;z-index: -1;';
body[0].appendChild(canvas);
指紋生成算法
let canvas=document.getElementById(this.params.id);
let cxt=canvas.getContext('2d');
let times=window.screen.width * this.params.clarity / this.params.density;//橫向文字填充次數
let heightTimes=window.screen.height * this.params.clarity * 1.5/ this.params.density; //縱向文字填充次數
cxt.rotate(-15*Math.PI/180); //傾斜畫布
for(let i=0; i < times; i++) {
for(let j=0; j < heightTimes; j++) {
cxt.fillStyle=this.params.color;
cxt.font=this.params.size + ' Arial';
cxt.fillText(this.params.text, this.params.density*i, j*this.params.density);
}
}
防止用戶刪除
使用定時器,定時檢查指紋是否存在
let self=this;
window.setInterval(function(){
if (!document.getElementById(self.params.id)) {
self._init();
}
}, 1000);
項目編譯
使用glup編譯
var gulp=require('gulp'),
uglify=require("gulp-uglify"),
babel=require("gulp-babel");
gulp.task('minify', function () {
return gulp.src('./src/index.js') // 要壓縮的js文件
.pipe(babel())
.pipe(uglify())
.pipe(gulp.dest('./dist')); //壓縮后的路徑
});
以上就是HTML5網頁水印SDK的實現方法的詳細內容,更多請關注其它相關文章!
更多技巧請《轉發 + 關注》哦!
#34;夏哉ke":chaoxingit.com/5056/
前端開發是現代Web應用開發的重要組成部分,掌握HTML5、CSS3和JavaScript是入門前端開發的基礎。本文將介紹40個精選的實戰案例,幫助你系統學習和應用這些技術。通過這些案例,你將深入理解各種前端技術的應用場景和實際操作,為成為優秀的前端開發人員打下堅實的基礎。
通過上述40個實戰案例,你可以全面掌握HTML5、CSS3和JavaScript的核心技術和應用場景。在學習過程中,建議結合實際項目或練習,不斷深化理解和提升實踐能力。前端開發是一個快速發展的領域,持續學習和探索新技術將幫助你成為一名優秀的前端工程師。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。