好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > 使用canvas對多圖片拼合并導出圖片的方法

使用canvas對多圖片拼合并導出圖片的方法

熱門標簽:欣鼎電銷機器人 效果 電話機器人技術 高德地圖標注商戶怎么標 惡搞電話機器人 地圖標注軟件打印出來 智能電銷機器人被禁用了么 ok電銷機器人 如何查看地圖標注 黃石ai電銷機器人呼叫中心

先說下canvas繪圖的基本方法,如下:

const myCanvas = document.createElement('canvas');
    myCanvas.width = 400;
    myCanvas.height = 400;
const ctx = myCanvas.getContext('2d');
const img = new Image();
img.src = "1.jpg";
//當圖片加載完畢的時候在drawImage,否則可能圖片還沒有加載完畢
img.onload=()=>{
    ctx.drawImage(img, 0, 0, 100, 50);
}

語法:

drawImage(image, x, y)

以canvas上指定的坐標點開始,按照圖像的原始尺寸大小繪制整個圖像。

drawImage(image, x, y, width, height)

以canvas上指定的坐標點開始,以指定的大小(width和height)繪制整個圖像,圖像會自動縮放。

drawImage(image, imageX, imageY, imageWidth, imageHeight, x, y, width, height)

將指定圖像的局部圖像(以(imageX, imageY)為左上角、寬度為imageWidth、高度為imageHeight的矩形部分)繪制到canvas中以( x, y)為左上角坐標、寬度為width、高度為height的矩形區域中

這次多圖拼合的業務場景是做不同內容的定制分享圖片,用到的圖片元素有,背景圖片、外鏈圖片、網站logo、定制生產的二維碼圖,需要解決的問題,都是在畫布轉圖片輸出時產出的。主要有3點:

1、圖片的跨域問題;
2、繪制多圖,造成的畫布污染;
3、圖片的大??;

首先圖片的跨域問題,這個問題在網上已經有很多相關信息,解決辦法如下:

img.setAttribute('crossOrigin', 'anonymous');

當解決完跨域問題后,在多圖拼合導出后,出現了新的報錯信息:

Uncaught DOMException: Failed to execute 'toDataURL' on 'HTMLCanvasElement': Tainted Canvases may not be exported.

我發現這個問題時,查看網上的資料,大多也是用上面的跨域方法解決的,可是我明顯在我的業務場景里是不管用的。

通過對代碼的排查,我發現,背景圖+二維碼圖時,并不會報這個錯誤,如外鏈圖片做了跨域處理,單獨使用時,也不會報錯。而logo圖片都是本地的文件,顯然不應該是跨域問題。

那么二維碼圖和背景圖能夠不出錯的原因,應該在于二維碼圖片源是base64格式的。

于是,我試著將logo圖使用畫布導出base64格式,然后和背景圖+二維碼圖進行拼合,導出時果然沒再報錯。

所有解決多圖拼合導出時,Tainted Canvases的問題,應該是將圖片元素做成base64的格式,就能夠避免了。

因為我的業務場景中有外鏈圖片,而且不是所有的外鏈都對我網站域名做了跨域允許的處理,所以,在生成外鏈圖片的base64數據時,可是使用img.onerror事件的處理,用缺省圖替換。

因為有在畫總圖之前,有對多圖的分別處理,因此,使用Promise處理可能會更好一些。

在圖片導出的大小問題上,導出時盡量使用

myCanvas.toDataURL('image/jpeg', encoderOptions)

encoderOptions:可以從0到1的區間內選擇圖片的質量。如果超出取值范圍,將會使用默認值 0.92。其他參數會被忽略。

以上個人對canvas拼合多圖并導出圖片的經驗總結。 希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

標簽:金昌 中山 阿壩 萍鄉 盤錦 綏化 赤峰 聊城

巨人網絡通訊聲明:本文標題《使用canvas對多圖片拼合并導出圖片的方法》,本文關鍵詞  使用,canvas,對,多,圖片,拼,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《使用canvas對多圖片拼合并導出圖片的方法》相關的同類信息!
  • 本頁收集關于使用canvas對多圖片拼合并導出圖片的方法的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 午夜神器18以下不能进在线观看| 国产亚洲色婷婷久久99蜜柚| 亚洲欧美另类吹潮| 呦国产精品视频稀缺无码| 免费人成网站www?549tv| 清纯校花被调教高h| 女生宿舍电影免费完整版| 萝莉破处| 8x8ⅹ拔擦拔擦免费入口| 精品久久久久中文人妻被强| 美女草比视频| 深夜看免费韩国漫画| 一级强奷毛B一片| 中文在线а√在线8| 阿好深快点老师受不了| 国产午夜福利片国产一级A片小说| 翁熄性放苏小颖18章| 男人把女人桶出白浆| 接吻视频扒内裤揉一揉捏捏胸| 男男啪啪动漫| 蜜臀av性久久久久av蜜臀妖精 | 教室play(H)| 无遮挡刺激激动做爰高潮视频| 花核花液| 特黄特色大片免费影院| zzjiiyou中国少妇A片| 91在线区啪国自产中文字幕| gogo人体做爰大胆图片| 美女的胸WWW又黄又免费的网站| 十八禁??网站视频app破解版| 精品国产鲁一鲁一区二区赤裸特工| 女生张开大腿让男生捅| 性欧美大战久久久久久久| 美女的隐私免费视频播放| 免费人成大片在线观看播放| 欧美精品亚洲精品日韩专区一| 你把我的批日出水了| 精品精品久久宅男的天堂| 精品人妻一区二区三区线国色天香| 他扒开我的内裤把舌头伸进去 | 香蕉亚洲精品网站国产一二三四 |