国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

使用JavaScript將圖片保存至本地

shevy / 1585人閱讀

摘要:可以使用和以方便用戶下載方式生成的內(nèi)容例如使用在線繪圖的應(yīng)用創(chuàng)建的照片。如果這個(gè)屬性存在被設(shè)置為,火狐優(yōu)先,像之前文件名的情況下,而則優(yōu)先屬性。

Canvas
// 下載Canvas元素的圖片
function downloadCanvasIamge(selector, name) {
    // 通過(guò)選擇器獲取canvas元素
    var canvas = document.querySelector(selector)
    // 使用toDataURL方法將圖像轉(zhuǎn)換被base64編碼的URL字符串
    var url = canvas.toDataURL("image/png")
    // 生成一個(gè)a元素
    var a = document.createElement("a")
    // 創(chuàng)建一個(gè)單擊事件
    var event = new MouseEvent("click")
    
    // 將a的download屬性設(shè)置為我們想要下載的圖片名稱,若name不存在則使用‘下載圖片名稱’作為默認(rèn)名稱
    a.download = name || "下載圖片名稱"
    // 將生成的URL設(shè)置為a.href屬性
    a.href = url
    
    // 觸發(fā)a的單擊事件
    a.dispatchEvent(event)
}

// 調(diào)用方式
// 參數(shù)一: 選擇器,代表canvas
// 參數(shù)二: 圖片名稱,可選
downloadCanvasIamge("canvas", "圖片名稱")
img標(biāo)簽
// 下載
function downloadIamge(selector, name) {
    // 通過(guò)選擇器獲取img元素
    var img = document.querySelector(selector)
    // 將圖片的src屬性作為URL地址
    var url = img.src
    var a = document.createElement("a")
    var event = new MouseEvent("click")
    
    a.download = name || "下載圖片名稱"
    a.href = url
    
    a.dispatchEvent(event)
}

// 調(diào)用方式
// 參數(shù)一: 選擇器,代表img標(biāo)簽
// 參數(shù)二: 圖片名稱,可選
downloadIamge("canvas", "圖片名稱")

總結(jié)

function downloadIamge(selector, name) {
    var image = new Image()
    // 解決跨域 Canvas 污染問(wèn)題
    image.setAttribute("crossOrigin", "anonymous")
    image.onload = function () {
        var canvas = document.createElement("canvas")
        canvas.width = image.width
        canvas.height = image.height

        var context = canvas.getContext("2d")
        context.drawImage(image, 0, 0, image.width, image.height)
        var url = canvas.toDataURL("image/png")

        // 生成一個(gè)a元素
        var a = document.createElement("a")
        // 創(chuàng)建一個(gè)單擊事件
        var event = new MouseEvent("click")

        // 將a的download屬性設(shè)置為我們想要下載的圖片名稱,若name不存在則使用‘下載圖片名稱’作為默認(rèn)名稱
        a.download = name || "下載圖片名稱"
        // 將生成的URL設(shè)置為a.href屬性
        a.href = url

        // 觸發(fā)a的單擊事件
        a.dispatchEvent(event)
    }

    image.src = document.querySelector(selector).src
}

// 調(diào)用方式
// 參數(shù)一: 選擇器,代表img標(biāo)簽
// 參數(shù)二: 圖片名稱,可選
downloadIamge("canvas", "圖片名稱")

此屬性僅適用于同源 URLs。
可以使用 blob: URLs 和 data: URLs 以方便用戶下載 JavaScript 方式生成的內(nèi)容(例如使用在線繪圖的Web應(yīng)用創(chuàng)建的照片)。
如果HTTP頭的Content-Disposition:存在,并且賦予了一個(gè)和這個(gè)屬性不同的文件名,HTTP頭優(yōu)先于此屬性。
如果這個(gè)屬性存在 Content-Disposition 被設(shè)置為 inline,火狐優(yōu)先 Content-Disposition,像之前文件名??的情況下,而Chrome則優(yōu)先 download 屬性。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/106714.html

相關(guān)文章

  • Android圖片三級(jí)緩存

    摘要:為什么要使用三級(jí)緩存如今的經(jīng)常會(huì)需要網(wǎng)絡(luò)交互,通過(guò)網(wǎng)絡(luò)獲取圖片是再正常不過(guò)的事了假如每次啟動(dòng)的時(shí)候都從網(wǎng)絡(luò)拉取圖片的話,勢(shì)必會(huì)消耗很多流量。 為什么要使用三級(jí)緩存 如今的 Android App 經(jīng)常會(huì)需要網(wǎng)絡(luò)交互,通過(guò)網(wǎng)絡(luò)獲取圖片是再正常不過(guò)的事了 假如每次啟動(dòng)的時(shí)候都從網(wǎng)絡(luò)拉取圖片的話,勢(shì)必會(huì)消耗很多流量。在當(dāng)前的狀況下,對(duì)于非wifi用戶來(lái)說(shuō),流量還是很貴的,一個(gè)很耗流量的應(yīng)用...

    jerry 評(píng)論0 收藏0
  • gulp和webpack入門(mén)介紹

    摘要:介紹說(shuō)明的包管理器,用于插件管理包括安裝卸載管理依賴等使用安裝插件命令提示符執(zhí)行插件名稱。總結(jié)安裝新建文件全局和本地安裝安裝插件新建文件通過(guò)命令提示符運(yùn)行任務(wù)。 showImg(https://segmentfault.com/img/remote/1460000010873466); 前言 眾所周知目前比較火的工具就是gulp和webpack,但webpack和gulp卻有所不同,本...

    hsluoyz 評(píng)論0 收藏0
  • 前端面試題目匯總

    摘要:線程在執(zhí)行過(guò)程中與進(jìn)程還是有區(qū)別的。但是線程不能夠獨(dú)立執(zhí)行,必須依存在應(yīng)用程序中,由應(yīng)用程序提供多個(gè)線程執(zhí)行控制。從邏輯角度來(lái)看,多線程的意義在于一個(gè)應(yīng)用程序中,有多個(gè)執(zhí)行部分可以同時(shí)執(zhí)行。 關(guān)于js 1.原型鏈 2.AJAX請(qǐng)求數(shù)據(jù)時(shí)解決緩存的辦法3.js的繼承 ...

    lastSeries 評(píng)論0 收藏0
  • JavaScript Web富應(yīng)用開(kāi)發(fā)》讀書(shū)筆記

    摘要:創(chuàng)建類(lèi)中并沒(méi)有真正的類(lèi),但中有構(gòu)造函數(shù)和運(yùn)算符。任何函數(shù)都可以用作構(gòu)造函數(shù),構(gòu)造函數(shù)必須使用運(yùn)算符作為前綴來(lái)創(chuàng)建新的實(shí)例。調(diào)用構(gòu)造函數(shù)時(shí)不要丟掉關(guān)鍵字。這里使用基于原型的繼承,而沒(méi)有用到構(gòu)造函數(shù)和關(guān)鍵字。 1.創(chuàng)建類(lèi) JavaScript中并沒(méi)有真正的類(lèi),但JavaScript中有構(gòu)造函數(shù)和new運(yùn)算符。構(gòu)造函數(shù)用來(lái)給實(shí)例對(duì)象初始化屬性和值。任何JavaScript函數(shù)都可以用作構(gòu)造函...

    琛h。 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<