六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

HTML5聯合canvas完成圖片壓縮

[摘要]這次給大家帶來HTML5聯合canvas實現圖片壓縮,主要以代碼的形式體現,下面就是實戰案例,一起來看一下。<!DOCTYPE html><html><head><meta charset="UTF-8"><meta nam...
這次給大家帶來HTML5聯合canvas實現圖片壓縮,主要以代碼的形式體現,下面就是實戰案例,一起來看一下。

<!DOCTYPE html>
<html>
<head>
 <meta charset="UTF-8">
 <meta name='viewport' content='width=device-width, initial-scale=1, maximum-scale=1'>
 <title>lianxi </title>
 <style type="text/css">
    </style>
</head>
<body>
    <form>
 名字:<input type="text " name = 'username' id = 'username'/>
 上傳:<input type="file" name = 'fileimage' id = 'fileimage' />
 </form>
 <button>button</button>
 <script>
 var file = document.querySelector('#fileimage')
 var username = document.querySelector('#username')
 var canvas = document.createElement('canvas');
 var span = document.createElement('span')
 var formData = new FormData()
 file.addEventListener('change',function() {
 //實現的原理的new formData()然后把這個formData 用ajax傳進去
 span.innerHTML = '預覽圖加載中...'
 document.body.appendChild(span)
 console.log(file.files[0])
 username.value ? formData.append('username',username.value) : null;
 resize(file.files[0]);
 })
 //上傳前的圖片壓縮
 function resize(file) {
 var reader = new FileReader()
 reader.readAsDataURL(file)
 var img = new Image()
 reader.onload = function (e) {
 // this.result就是圖片的base64地址信息
 img.src = this.result;
 }
 
 var context = canvas.getContext('2d');
 var gif = document.createElement('img')
 
 // base64地址圖片加載完畢后
 img.onload = function () {
 // 圖片原始尺寸
 //定義畫布的大小
 if (img.width > 300    img.height > 300) {
 if (img.width > img.height) {
 canvas.width = 300
 canvas.height = img.height / img.width * 300
 }
 else {
 canvas.height = 300
 canvas.width = img.width / img.height * 300
 }
 }
 //從那里開始截取圖片
 context.drawImage(img, 0, 0, canvas.width, canvas.height)
 /*第一個參數是創建的img對象;第二個參數是左上角坐標,后面兩個是畫布區域寬高*/
 //壓縮后的圖片base64 url
                /*canvas.toDataURL(mimeType, qualityArgument),mimeType 默認值是'image/jpeg';
                 * qualityArgument表示導出的圖片質量,只要導出為jpg和webp格式的時候此參數才有效果,默認值是0.92*/
 //var newUrl = canvas.toDataURL('image/jpeg', 0.92);//base64 格式
 document.body.removeChild(span)
 document.querySelector('body').appendChild(canvas)
 };
 }
 //這是上傳的
 document.querySelector('button').addEventListener('click',function(){
 canvas.toBlob(function(blob){
 var xhr = new XMLHttpRequest()
 formData.append('fileimage', blob,'002.webp')
 xhr.open('POST', 'test.php', true)//默認true 為異步
 //上傳進度
 xhr.upload.addEventListener('progress',function (e) {
 console.log('上傳進度為:'+ (e.loaded/e.total*100).toFixed(2)+'%')//多次出現
 // event.total是需要傳輸的總字節,event.loaded是已經傳輸的字節
 })
 xhr.upload.addEventListener('loadstart', function () {
 console.log('上傳開始')//只出現一次
 })
 xhr.onreadystatechange = function () {
 if (xhr.readyState === 4) {
 if (xhr.status >= 200 && xhr.status <300    xhr.status == 304) {
 console.log(JSON.parse(xhr.responseText))//成功后的返回值
 }
 else {
 console.log("Request was unsuccessful: " + xhr.status);
 } 
 }
 
 }
 //xhr.setRequestHeader("Content-type", "multipart/form-data");
 xhr.send(formData)
 }, 'image/webp',0.9)
 })
 </script>
</body>
</html>

需要注意的是后端需要加上header("Access-Control-Allow-Origin:*");以實現跨域

相關鏈接:

html5+canvas實現圖片的壓縮上傳

HTML5 Canvas 實現本地壓縮圖片

HTML5 canvas實現圖片拉伸、壓縮與裁剪

以上就是HTML5聯合canvas實現圖片壓縮的詳細內容,更多請關注php中文網其它相關文章!


網站建設是一個廣義的術語,涵蓋了許多不同的技能和學科中所使用的生產和維護的網站。




主站蜘蛛池模板: 最近手机中文字幕大全首页 | 青青草原免费在线视频 | 中文字幕第九页 | 日日夜夜综合 | 最好免费高清视频观看韩国 | 天堂资源在线最新版 | 亚洲天堂男人的天堂 | 日韩一区二区在线播放 | 亚洲视频在线观看网站 | 日本不卡高清视频 | 四虎影院海外永久 | 婷婷5月 | 午夜影院免费视频 | 色无极在线影院 | 五月婷婷色丁香 | 亚洲欧美日韩激情在线观看 | 青娱在线 | 天天射天天干天天操 | 日韩性黄色一级 | 日韩成人免费视频播放 | 色网站免费 | 婷婷影院在线综合免费视频 | 最近韩国中文字幕更新 | 青草视频免费观看 | 亚洲第一页在线观看 | 四虎国产精品永久地址49 | 日本中文字幕不卡 | 天天干天天插天天射 | 天堂网在线新版www 天堂网在线网站成人午夜网站 | 色站app | 日韩在线 中文字幕 | 天天干夜夜艹 | 日本欧美特黄特色大片 | 日韩国产欧美精品综合二区 | 伊人蕉久中文字幕无码专区 | 四虎精品影视 | 五月婷婷综合网 | 中国性欧美 | 日韩久久影院 | 欧美视频福利 | 亚洲视频播放 |