国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

前端 img圖片如何 展示 base64 格式(并且下載到本地)

這篇具有很好參考價值的文章主要介紹了前端 img圖片如何 展示 base64 格式(并且下載到本地)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

如題:最近在做項目發(fā)現(xiàn)頁面上有些圖片是動態(tài)獲取的,也就是后臺給我們返回圖片的存放地址,一般都是放在服務器上的某個位置,我們直接拿到渲染一下就行了,(前提是不存在跨域問題),

但是由于項目特殊性,后臺使用了Python 渲染出來的圖片是svg格式的圖片,并且是矢量圖,不太好轉成 png這種圖片,不可以直接存放地址,所以想到了用base64 不也行嗎。。

例如:

 <div class="scatter" id="scatter" > 
      <img :src="inputImg" alt="" :style="{width:widthImg,height:heightImg}">
 </div>


//下面 直接使用vue 語法

// 接口獲取到的 字段直接賦值即可

  this.inputImg = 'data:image/svg+xml;base64,' + res.data.body.data

這種后臺數(shù)據(jù)返回格式如下:

前端 img圖片如何 展示 base64 格式(并且下載到本地)

上面后臺數(shù)據(jù)返回的是svg格式的 矢量圖 ,為了更加清晰,不失真, 采用這種方法,所以我們對應的寫好他的后綴,因為是xml格式所以這么寫? 'data:image/svg+xml;base64,'

既然有svg這種圖片,也就存在png,jpg,jpeg等格式的圖片,我們只需要確定后臺使用的邏輯和方法返回對應的格式就行,jpeg格式:??this.imgUrl='data:image/jpeg;base64,'+res.data.data,

其它的圖片應該也都類似,跨域問題自行解決。

那么展示出來的圖片如何下載到本地呢?

解決方法:圖片數(shù)據(jù)以 Base64 編碼的字符串形式嵌入到 HTML 或 Js中,那么想要將這張圖片保存到本地,就需要將該 Base64 編碼的字符串轉換為二進制數(shù)據(jù),并將其存儲為一個文件??梢灾苯邮褂胊 標簽,也可以使用 按鈕或者其它標簽,下面我是用了 餓了么ui的? el-button 按鈕

代碼:

<el-button type="primary" size="mini"  @click="updown">下載結果</el-button>


//對應的方法
updown(){
    var objimg='' 
   //這里objimg 表示圖片顯示的路徑  一般都是data:image/jpeg;base64,iVBORw0KGgoAAAANS
   const byteCharacters = atob(objimg.split(',')[1])
   const byteNumbers = new Array(byteCharacters.length)
   for (let i = 0; i < byteCharacters.length; i++) {
      byteNumbers[i] = byteCharacters.charCodeAt(i)
   }
   const byteArray = new Uint8Array(byteNumbers)
    //區(qū)分是什么類型的 svg 或者是png 格式 切記不同類型后綴不同。使用錯誤可能會下載圖片打不開
    var blobs=''
    if(this.active=='first' || this.active=='second' ||                
      this.active=='third'){
      blobs = 'image/svg+xml'
     }
     if(this.active=='four'){
          blobs = 'image/png'
     } 
     this.downLong=false
       let url = window.URL.createObjectURL(
              new Blob([byteArray], { type: blobs })
       );
       let link = document.createElement("a"); //創(chuàng)建a標簽
       link.style.display = "none"; //將a標簽隱藏
       link.href = url; //給a標簽添加下載鏈接
       link.setAttribute("download", '運行結果圖片' ); 
       document.body.appendChild(link);
       link.click(); //執(zhí)行a標簽
}

要注意的就是: 先把圖片路徑拿到,去解析成對應的類型,我們只解析 “base64,” 后面的字符串,所以先用split分割一下,后面都是根據(jù)不同類型生成不同的下載后綴,就可以了。

當然可以直接使用 a 標簽來表示,這里是舉例png格式的,其它格式參考上面的方法基本一樣。

<a :href="downloadUrl" download="image.png">下載圖片</a>

//方法
downloadUrl() {
      // 將 Base64 編碼的字符串轉換為二進制數(shù)據(jù)
      var objimg='' 
     //這里objimg 表示圖片顯示的路徑  一般都是  data:image/jpeg;base64,iVBORw0KGgoAAAANS
      const byteCharacters = atob(objimg.split(',')[1])
      const byteNumbers = new Array(byteCharacters.length)
      for (let i = 0; i < byteCharacters.length; i++) {
        byteNumbers[i] = byteCharacters.charCodeAt(i)
      }
      const byteArray = new Uint8Array(byteNumbers)

      // 創(chuàng)建 Blob 對象并將其轉換為 URL
      const blob = new Blob([byteArray], { type: 'image/png' })
      return URL.createObjectURL(blob)
    }

知識點:atob 是 js函數(shù) 里的解析base64 字符串的方法。它還有個兄弟btoa 是 編輯成base64格式的。

? ? ? ? charCodeAt()是字符串方法,用于檢索字符串中特定位置的字符的Unicode 值。

? ? ? ? Uint8Array 是一個數(shù)組他表示,8位無符號整數(shù),長度是1個字節(jié)。文章來源地址http://www.zghlxwxcb.cn/news/detail-490306.html

到了這里,關于前端 img圖片如何 展示 base64 格式(并且下載到本地)的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 【js】js前端技巧之圖片格式轉換(File、Blob、base64):

    【js】js前端技巧之圖片格式轉換(File、Blob、base64):

    一、類型簡介 BLOB(binary large object) : 二進制大對象,是一個可以存儲二進制文件的容器。 在計算機中,BLOB常常是數(shù)據(jù)庫中用來存儲二進制文件的字段類型。 屬性名稱 讀/寫 描述 size 只讀 Blob 對象中所包含數(shù)據(jù)的大?。ㄗ止?jié))。 type 只讀 一個字符串,表明該Blob對象所包含數(shù)據(jù)

    2024年02月07日
    瀏覽(29)
  • 如何將base64圖片轉化為URL格式

    1)將base64圖片格式轉為可讀的url格式 將圖片文件轉為二進制,然后通過URL的createObjectURL函數(shù),將二進制轉為url格式 2)將圖片轉為文件

    2024年02月12日
    瀏覽(25)
  • 如何將圖片轉化為base64編碼格式顯示

    base64編碼 是將數(shù)據(jù)用 64 個可打印的字符進行編碼的方式,任何數(shù)據(jù)底層實現(xiàn)都是二進制,所以都可以進行 base64編碼,base64編碼 主要用在數(shù)據(jù)傳輸過程中(編碼、解碼)。而 Data URI 是將數(shù)據(jù)用 URI 的形式進行展現(xiàn)。常用的是將圖片進行 base64 編碼,用 Data URI 的形式進行展現(xiàn),可

    2024年02月06日
    瀏覽(24)
  • Android中的圖片如何轉換成Base64格式

    Android手機客戶端的圖片數(shù)據(jù)上傳到服務器中保存,首先需要將客戶端的圖片轉換成Base64格式,然后才能通過網絡上傳到服務器中。 讓客戶端將圖片上傳到服務器,將圖片的網絡URL告訴服務器 將圖片轉成Base64編碼,傳遞給服務器,服務器將Base64字符串解碼之后生成一張圖片。

    2023年04月27日
    瀏覽(17)
  • HTML img 元素無法顯示 base64 圖片的可能原因

    如果使用 base64 編碼的圖片在 HTML 的 img 元素中無法顯示,可能有以下幾個原因: 1、語法錯誤:img 元素中的 src 屬性必須以 \\\"data:\\\" 開頭,后面跟著 MIME 類型和 base64 編碼的圖片數(shù)據(jù)。如果這個語法格式有誤,就無法正常顯示圖片。 2、MIME 類型錯誤:如果指定的 MIME 類型與實際

    2024年02月05日
    瀏覽(19)
  • 后端返回base64文件前端如何下載

    后端返回base64文件前端如何下載

    1.后端返回base64格式文件 2.前端代碼 3.請求封裝

    2024年02月05日
    瀏覽(27)
  • Python Selenium如何下載網頁中的圖片到本地?(Base64編碼的圖片下載)

    Python Selenium如何下載網頁中的圖片到本地?(Base64編碼的圖片下載)

    前言:? ? ? ?? ? ? ? ? 在網頁上,圖片有時會以Base64編碼的形式嵌入在HTML中,而不是作為單獨的文件提供。這種方式的優(yōu)點是可以減少HTTP請求的數(shù)量,因為圖片數(shù)據(jù)直接包含在HTML中,不需要額外的請求來獲取圖片文件。這對于小圖片或圖標特別有用,因為這些圖片的文

    2024年04月17日
    瀏覽(33)
  • 【base64】JavaScript&uniapp 將圖片轉為base64并展示

    【base64】JavaScript&uniapp 將圖片轉為base64并展示

    Base64是一種用于編碼二進制數(shù)據(jù)的方法,它將二進制數(shù)據(jù)轉換為文本字符串。它的主要目的是在網絡傳輸或存儲過程中,通過將二進制數(shù)據(jù)轉換為可打印字符的形式進行傳輸 ?圖片大小從1.36MB到169kb 上面的代碼中,toDataURL產生的是圖片的base64編碼,Base64編碼必須是完整且正確

    2024年02月11日
    瀏覽(27)
  • uniapp+vue3+vant-weapp運行到微信小程序中繪制海報,將畫布中繪制base64格式的圖片以及長按進行圖片的分享和下載

    uniapp+vue3+vant-weapp運行到微信小程序中繪制海報,將畫布中繪制base64格式的圖片以及長按進行圖片的分享和下載

    對于uniapp繪制海報,遇到的難點就是將bas64格式的圖片繪制上去,試了很多方式,終于找到了不錯的方法, 先將其下載到本地,再進行繪制,以下就是 完整的代碼 海報的內容可以根據(jù)自己的需求自行更改 ## 下面有一個測試base64格式的圖片,可用替換成自己的實際路徑 ## 長按

    2024年02月21日
    瀏覽(96)
  • 微信小程序常見圖片格式轉base64圖片

    1、在utils文件下新建一個auth.js文件(隨便取一個名字,你開心就行),在里面添加以下代碼 如果是網絡圖片需要先使用wx.downloadFile({...})下載之后才可進行轉換,本地的則直接轉換即可你可根據(jù)具體需求修改代碼,不要受此處代碼影響。 2、在你需要使用的地方引入

    2024年02月06日
    瀏覽(90)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包