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

js壓縮base64圖片

這篇具有很好參考價(jià)值的文章主要介紹了js壓縮base64圖片。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

今天試了用js把base64編碼格式的圖片進(jìn)行壓縮,記錄一下:

base64圖片轉(zhuǎn)換地址?

base64圖片轉(zhuǎn)換網(wǎng)址

?代碼如下

js:

$(document).ready(function(){

  compressImg(targetObj.src, 0.5, useImg, targetObj)
});


let targetObj = {

    // base64字符串 太大了,刪掉了,可以自己替換
  src: ''
}
function compressImg (base64, multiple, useImg, targetObj) {
  // 第一個(gè)參數(shù)就是需要加密的base65,
  // 第二個(gè)是壓縮系數(shù) 0-1,
  // 第三個(gè)壓縮后的回調(diào) 用來獲取處理后的 base64
  if (!base64) {
    return
  }
  // const _this = this
  const length = base64.length / 1024
  // 壓縮方法
  let newImage = new Image()
  let quality = 0.6    // 壓縮系數(shù)0-1之間
  newImage.src = base64
  newImage.setAttribute('crossOrigin', 'Anonymous') // url為外域時(shí)需要
  let imgWidth,
      imgHeight
  let w = undefined
  newImage.onload = function () {
    // 這里面的 this 指向 newImage
    // 通過改變圖片寬高來實(shí)現(xiàn)壓縮
    w = this.width * multiple
    imgWidth = this.width
    imgHeight = this.height
    let canvas = document.createElement('canvas')
    let ctx = canvas.getContext('2d')
    if (Math.max(imgWidth, imgHeight) > w) {
      if (imgWidth > imgHeight) {
        canvas.width = w
        // 等比例縮小
        canvas.height = w * (imgHeight / imgWidth)
      } else {
        canvas.height = w
        // 等比例縮小
        canvas.width = w * (imgWidth / imgHeight)
      }
    } else {
      canvas.width = imgWidth
      canvas.height = imgHeight
      // quality 設(shè)置轉(zhuǎn)換為base64編碼后圖片的質(zhì)量,取值范圍為0-1  沒什么壓縮效果
      // 還是得通過設(shè)置 canvas 的寬高來壓縮
      quality = 0.6
    }
    ctx.clearRect(0, 0, canvas.width, canvas.height)
    ctx.drawImage(this, 0, 0, canvas.width, canvas.height) //  // 這里面的 this 指向 newImage
    let smallBase64 = canvas.toDataURL('image/jpeg', quality) // 壓縮語句
    // 如想確保圖片壓縮到自己想要的尺寸,如要求在50-150kb之間,請(qǐng)加以下語句,quality初始值根據(jù)情況自定
    // while (smallBase64.length / 1024 > 150) {
    // quality -= 0.01;
    // smallBase64 = canvas.toDataURL("image/jpeg", quality);
    // }
    // 防止最后一次壓縮低于最低尺寸,只要quality遞減合理,無需考慮
    // while (smallBase64.length / 1024 < 50) {
    // quality += 0.001;
    // smallBase64 = canvas.toDataURL("image/jpeg", quality);
    // }

    // 必須通過回調(diào)函數(shù)返回,否則無法及時(shí)拿到該值,回調(diào)函數(shù)異步執(zhí)行
    console.log(`壓縮前:${length}KB`)
    console.log(`壓縮后:${smallBase64.length / 1024} KB`)


    useImg(smallBase64, targetObj)
  }
}
function useImg (base64, targetObj) {
  // targetObj 通過值引用的特性  用處理后的 base64 覆蓋 處理前的 base63
  console.log('壓縮后的 base64 :', base64)
  $("#img").attr("src",  base64);
  targetObj.src = base64
}


html?

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    
<script src="jquery-3.7.0.min.js"></script>
<script type="text/javascript" src="my.js"></script>
</head>

<body>
     <h1>測(cè)試</h1>
    <img id="img" src="">
</body>
</html>

測(cè)試效果

js壓縮base64圖片,工作中,javascript,前端,開發(fā)語言

?壓縮包已經(jīng)上傳資源包中,有需要可以下載,下完即用文章來源地址http://www.zghlxwxcb.cn/news/detail-524970.html

到了這里,關(guān)于js壓縮base64圖片的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 使用JavaScript將圖片轉(zhuǎn)換為Base64

    在Web開發(fā)中,我們經(jīng)常需要將圖片轉(zhuǎn)換為Base64格式,以便在不依賴外部資源的情況下直接在HTML中使用。在這篇文章中,我將向您展示如何使用JavaScript將圖片轉(zhuǎn)換為Base64格式。 ??FileReade方式 ????????首先,我們需要?jiǎng)?chuàng)建一個(gè)FileReader對(duì)象,它是HTML5中的一個(gè)API,用于讀取文

    2024年02月03日
    瀏覽(22)
  • 前端實(shí)現(xiàn)圖片轉(zhuǎn)Base64

    前端實(shí)現(xiàn)圖片轉(zhuǎn)Base64

    廢話不多說,直接上代碼 我們傳入一個(gè)圖 片地址看看是否成功? 但是,一般我們?cè)谧鲞@樣的需求前,處理的圖片肯定不止一張,接下來就要批量處理,但是這個(gè)方法是異步,我們要將一個(gè)數(shù)組內(nèi)的每個(gè)對(duì)象的地址都轉(zhuǎn)成base64,才算真正完成我們的功能。前端一般接收到后端的

    2024年02月05日
    瀏覽(31)
  • 前端 base64與圖片相互轉(zhuǎn)換

    前端 base64與圖片相互轉(zhuǎn)換

    base64轉(zhuǎn)圖片 如下圖:(后端返回的數(shù)據(jù)) base64轉(zhuǎn)換圖片文件 圖片(url)轉(zhuǎn)換base64 便捷的圖片轉(zhuǎn)化base64 利用 Chrome 瀏覽器,在 chrome 下新建一個(gè)窗口,然后把要轉(zhuǎn)化的圖片直接拖入瀏覽器,打開控制臺(tái),點(diǎn) Source,如下圖所示,點(diǎn)擊圖片,右側(cè)就會(huì)顯示該圖片的 base64 編碼

    2024年02月12日
    瀏覽(24)
  • c# .net linux ImageSharp+FastDFS+Base64上傳圖片,壓縮圖片大小,圖像處理dcoker中使用也可以

    .net?以前是用System.Drawing來處理圖片,但是在dcoker 、linux上用不了 微軟官方推薦用 1、SkiaSharp 如果項(xiàng)目運(yùn)行到docker里,需要NUGET安裝SkiaSharp.NativeAssets.Linux.NoDependencies 注意:如果你同時(shí)引用SkiaSharp.NativeAssets.Linux和SkiaSharp.NativeAssets.Linux.NoDependencies?可能會(huì)導(dǎo)致docker中運(yùn)行報(bào)錯(cuò),

    2024年02月07日
    瀏覽(25)
  • Java 圖片渲染到前端,向前端一次返回多張Base64圖片

    當(dāng)我們從服務(wù)器讀取的圖片鏈接返回給前端,前端可以很輕松的下載和展示,但是對(duì)于臨時(shí)文件,我們不需要保存到服務(wù)器,比如PPT轉(zhuǎn)圖片,PDF轉(zhuǎn)圖片等等,我們需要直接返回給前端,對(duì)于一張圖片可以使用flush()渲染到前端,多張圖片可以把圖片編碼成Base64,并存儲(chǔ)到數(shù)組中

    2024年02月09日
    瀏覽(26)
  • js將圖片轉(zhuǎn)base64兩種方法

    第一種:Image + canvas 第二種:xhr + FileReader

    2024年02月11日
    瀏覽(26)
  • 前端將base64圖片轉(zhuǎn)換成file文件

    前端將base64圖片轉(zhuǎn)換成file文件

    1、base64轉(zhuǎn)成file具體代碼 文件轉(zhuǎn)換過程: 2、代碼解析 ? 該方法涉及知識(shí)點(diǎn)較多,首先因?yàn)閎ase64的前綴信息部分與文件內(nèi)容部分是通過 , 進(jìn)行連接的, data:image/***;base64(前綴信息),xxxxx(文件內(nèi)容) ,所以利用 split() 方法對(duì)base64進(jìn)行分割,將前綴文件信息,與文件內(nèi)容分隔開。得

    2024年01月20日
    瀏覽(27)
  • 前端獲取本地圖片并且轉(zhuǎn)化為base64格式

    前端獲取本地圖片并且轉(zhuǎn)化為base64格式

    今天看見網(wǎng)上各位大佬五花八門的前端圖片獲取并轉(zhuǎn)化為base64格式的操作,果然高手在民間,很神奇,沒想到有這么多方法,那我也來寫一個(gè)我自己的方法 我是習(xí)慣使用filereader這個(gè)內(nèi)置類,感覺比較簡(jiǎn)單,不用管內(nèi)部原理,反正可以獲取圖片,實(shí)現(xiàn)在互聯(lián)網(wǎng)上的傳輸就可以

    2024年02月09日
    瀏覽(99)
  • 前端FileReader對(duì)象實(shí)現(xiàn)圖片file文件轉(zhuǎn)base64

    前端FileReader對(duì)象實(shí)現(xiàn)圖片file文件轉(zhuǎn)base64

    1、file轉(zhuǎn)base64具體代碼 2、原理解析 ? 上面封裝的方法,其原理主要是借助 FileReader 對(duì)象來實(shí)現(xiàn)圖片格式的轉(zhuǎn)換, FileReader 對(duì)象中的 readAsDataURL() 方法,可以讀取一個(gè) File 或 Blob 類型的文件,并將其轉(zhuǎn)換為base64格式的字符串。但要注意的一點(diǎn)是:我們通過 readAsDataURL() 方法去讀

    2023年04月09日
    瀏覽(33)
  • JS基于base64編碼加密解密文本和圖片(修訂)

    JS基于base64編碼加密解密文本和圖片(修訂)

    ? 密碼學(xué),體系太龐大了,常見的加密解密算法很多,這里僅介紹采用base64實(shí)現(xiàn)的加密解密的方法。 嚴(yán)格地說base64不是加密算法,他只是一種編碼方式,是一種用64個(gè)字符來表示任意二進(jìn)制數(shù)據(jù)的方法。詳情可參見其它資料。 Base64編碼具有不可讀性,需要解碼后才能閱讀。

    2024年02月07日
    瀏覽(30)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包