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

uniapp實現(xiàn)上傳圖片添加日期和地點水印,修復(fù)多張圖片同時上傳,顯示相同圖片問題

這篇具有很好參考價值的文章主要介紹了uniapp實現(xiàn)上傳圖片添加日期和地點水印,修復(fù)多張圖片同時上傳,顯示相同圖片問題。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

整體實現(xiàn)流程:首先調(diào)用uni.chooseImage方法,配置count、sizeType、sourceType參數(shù),分別代表選擇的圖片個數(shù)、original 原圖,compressed 壓縮圖,默認(rèn)二者都有、是從相冊還是拍照。

然后在成功的回調(diào)中拿到上傳的所有圖片并存儲。然后就是添加水印,調(diào)用uni-getImageInfo拿圖片信息,然后使用canvas進(jìn)行水印添加。在成功的回調(diào)中進(jìn)行圖片上傳(uni-uploadFile)即回顯。代碼如下:

imgCount就是限制上傳個數(shù),當(dāng)我們同時使用拍照和相冊上傳,會出現(xiàn)當(dāng)上傳一張拍照圖片,再從相冊上傳這個如果不做imgCount--操作上傳的個數(shù)會出現(xiàn)問題。也有其他實現(xiàn)形式哦。

如果我們在成功的回調(diào)中拿到所有圖片,直接在success中循環(huán)調(diào)用添加水印方法。例如選擇了兩張圖片就會出現(xiàn)上傳的兩張圖片一摸一樣。所以我沒有在success中直接遍歷。?

/**選擇圖片*/
  selectPicture() {
    uni.chooseImage({
      count: this.imgCount,
      sizeType: ['compressed'], // 壓縮圖片
      sourceType: ['camera', 'album'], // 拍照或相冊上傳圖片
      success: (res: any) => {
        this.imgCount-- // 這里主要為了限制選擇的圖片,解決圖片先拍照上傳,后有進(jìn)行相冊選擇
        // 每次清空數(shù)組
        this.photoArr.length = 0

        // 存儲上傳的圖片
        this.photoArr.push(...res.tempFiles.map((item: any) => item.path)) 
        // 添加水印
        this.callAddWaterMart()
      }
    })
  }

?這個callback方法就是為了在上傳并添加水印后在給第二張圖片添加。代碼中也有注釋,我就不多說了?

 // 調(diào)用添加水印的函數(shù)
  callAddWaterMart() {
    // 這個是真正的添加水印方法,傳入回調(diào)是為了解決同時上傳多張,會顯示相同的圖片。
    this.getInfoImage(() => {
      if (this.photoIndex < this.photoArr.length - 1) {
        this.photoIndex++
        this.callAddWaterMart()
      }
    })
  }

// 這里為了方便寫到一個函數(shù)里
getInfoImage(callback: any) {
    // 小程序沒有document,只能在頁面中建一個canvas,然后在成功時給他隱藏。
    this.flag = false
    // 這個函數(shù)是可以拿到圖片的一些信息,寬高等
    uni.getImageInfo({
       // 初始化photoIndex=0,拿到第一張圖片,并添加水印
      src: this.photoArr[this.photoIndex],
      success: res => {
        // // 設(shè)置畫布高度和寬度
        this.canvasWidth = `${res.width}px`
        this.canvasHeight = `${res.height}px`
        //獲取當(dāng)前時間
        let roleNameInfo = date(new Date(), 'long') + '\n' + this.from.data.address
        var ctx = uni.createCanvasContext('imgId')
        ctx.drawImage(this.photoArr[this.photoIndex], 0, 0, res.width, res.height)
        // 為圖片添加水印
        ctx.setFontSize(30) //水印字體大小
        ctx.setFillStyle('red') //水印顏色
        // 水印位置
        ctx.fillText(roleNameInfo, 60, res.height - 60)
        // 開始繪制添加水印的圖片并顯示在頁面中
        ctx.draw(false, result => {
          setTimeout(() => {
            //把當(dāng)前畫布指定區(qū)域的內(nèi)容導(dǎo)出生成指定大小的圖片,并返回文件路徑。在自定義組件下,第二個參數(shù)傳入自定義組件實例,以操作組件內(nèi) <canvas> 組件。
            // 這里主要為了拿到路徑
            uni.canvasToTempFilePath({
              canvasId: 'imgId',
              // 設(shè)置輸出的圖片的寬度高度,會加快輸出圖片時間
              destWidth: res.width,
              destHeight: res.height,
              fileType: 'jpg', //jpg為了壓縮
              quality: 0.8, //圖片的質(zhì)量
              success: res => {
                console.log('res', res)
                this.flag = true


                /** 添加上傳進(jìn)度和圖片路徑 */
                this.currentImgList.push({
                  path: res.tempFilePath,
                  uploadPercent: 0
                })
                // 上傳圖片
                this.uploadfile(res.tempFilePath)
                // 給所有的圖片添加水印
                callback()
              },
              fail: err => {
                uni.hideLoading()
                // this.$u.toast('上傳錯誤')
              }
            })
          }, 500)
        })
      },
      fail: err => {
        console.log(err)
      }
    })
  }

uploadFile我就不說了,每個公司都不一樣的路徑,看文檔就可以了。這里只提示思路,代碼大家自行實現(xiàn)。文章來源地址http://www.zghlxwxcb.cn/news/detail-519872.html

到了這里,關(guān)于uniapp實現(xiàn)上傳圖片添加日期和地點水印,修復(fù)多張圖片同時上傳,顯示相同圖片問題的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 使用JavaScript給圖片添加圖片水印的前端實現(xiàn)方法

    當(dāng)涉及圖片處理時,JavaScript是一種強(qiáng)大的工具。在本篇博客中,我們將學(xué)習(xí)如何使用JavaScript來給圖片添加水印,并將其封裝成一個函數(shù),以便在需要的時候重復(fù)使用。 在開始之前,確保你已經(jīng)準(zhǔn)備好了以下內(nèi)容: ? ? ? ? 1.一張待添加水印的圖片。 ? ? ? ? 2.水印圖片。

    2024年03月15日
    瀏覽(41)
  • uniapp+uView 實現(xiàn)自定義水印相機(jī),拍完照片給圖片加水印,從相冊選擇圖片加水印功能

    uniapp+uView 實現(xiàn)自定義水印相機(jī),拍完照片給圖片加水印,從相冊選擇圖片加水印功能

    樣式圖如上所示 頁面分為取景框和拍照完成后預(yù)覽,本功能設(shè)計到,公共上傳組件,相機(jī)也頁面,獲取定位地址,頁面中如何用該上傳組件 UI實現(xiàn) 取景界面分為上下兩個部分,上部分為camera取景框組件,下部分為操作區(qū)域。 取景框組件上的關(guān)閉和水印,以及拍完照片后的略

    2024年04月14日
    瀏覽(28)
  • 基于Java和Spring:實現(xiàn)圖片壓縮、WebP格式轉(zhuǎn)換與水印添加

    基于Java和Spring:實現(xiàn)圖片壓縮、WebP格式轉(zhuǎn)換與水印添加

    大多數(shù)公司通常會擁有面向企業(yè)端(B端)和消費(fèi)者端(C端)的應(yīng)用,如淘寶IOS/Android端和PC端。對于C端產(chǎn)品而言,往往具備訪問量大、數(shù)據(jù)量龐大的特點,例如類似淘寶的商品詳情頁,其中包含大量且尺寸較大的圖片。在這種前提下,為了確保良好的用戶體驗,需要在保證圖

    2024年03月24日
    瀏覽(22)
  • uniapp - 微信小程序?qū)崿F(xiàn)騰訊地圖位置標(biāo)點展示,將指定地點進(jìn)行標(biāo)記選點并以一個圖片圖標(biāo)展示出來(詳細(xì)示例源碼,一鍵復(fù)制開箱即用)

    在uniapp微信小程序平臺端開發(fā),簡單快速的實現(xiàn)在地圖上進(jìn)行位置標(biāo)點功能,使用騰訊地圖并進(jìn)行標(biāo)點創(chuàng)建和設(shè)置(可以自定義標(biāo)記點的圖片)。 你只需要復(fù)制代碼,改個標(biāo)記圖標(biāo)和位置即可。

    2024年02月08日
    瀏覽(87)
  • uniapp中的uni-file-picker組件上傳多張圖片到服務(wù)器,可添加,預(yù)覽,刪除圖片

    uniapp中的uni-file-picker組件上傳多張圖片到服務(wù)器,可添加,預(yù)覽,刪除圖片

    前言:在uniapp官方文檔中的uni-file-picker組件可實現(xiàn)圖片上傳功能,官方文檔:uniapp官網(wǎng) 中的案例不能完全滿足需求,官網(wǎng)中默認(rèn)的是上傳到自帶的服務(wù)空間 以下是代碼: view代碼: :auto-upload=\\\"false\\\"加上這個取消自動上傳 methods方法 選擇圖片 上傳圖片 刪除圖片 上傳事例: 參

    2024年02月11日
    瀏覽(95)
  • 給圖片添加圖片水印

    ????????react + antd 4.x(此版本沒有watermark水?。?,需要將后端傳遞的圖片添加圖片水印 1、水印添加問題 2、水印添加完成后顯示問題 ????????將watermark水印圖片和img需要添加水印的圖片同時創(chuàng)建了,以至于在img創(chuàng)建成功后watermark有可能還沒有創(chuàng)建成功,導(dǎo)致沒有進(jìn)入

    2024年02月21日
    瀏覽(16)
  • uniapp水印相機(jī)(水印照片,圖片加水印)

    在實際開發(fā)的項目中,我們有時候會遇到相機(jī)拍照上傳照片的時候需要帶有水印的功能。下面整理了我在自己的項目中做的水印相機(jī)(完整源碼)功能實戰(zhàn)分享給大家。 水印中內(nèi)容包含如下(實際包含的內(nèi)容根據(jù)你的實際需求而定,這里只是以我的項目需求為例): 具體日期時間

    2024年02月03日
    瀏覽(19)
  • uniapp實現(xiàn)自定義上傳圖片

    uniapp實現(xiàn)自定義上傳圖片

    在正式自定義上傳前我們先將靜態(tài)頁面搭建好。 樣式代碼: 通過uniapp的uni.chooseImage從本地相冊選擇圖片或使用相機(jī)拍照。 在data中定義一個響應(yīng)式數(shù)據(jù)來接收我們選擇的圖片,然后通過v-for渲染到我們的頁面,達(dá)到縮略圖的效果。 代碼: 效果: 最初我們定義了只能選擇九張

    2024年02月12日
    瀏覽(35)
  • uniapp實現(xiàn)圖片和視頻上傳

    模板部分 js部分 使用 效果展示

    2024年02月03日
    瀏覽(54)
  • Python操作Word水印:添加文字或圖片水印

    Python操作Word水?。禾砑游淖只驁D片水印

    在Word文檔中,可以添加半透明的圖形或文字作為水印,以保護(hù)文檔的原創(chuàng)性,防止未經(jīng)授權(quán)的復(fù)制或使用。除了提供安全功能外,水印還可以展示文檔創(chuàng)作者的信息、附加的文檔信息,或者僅用于文檔的裝飾。本文將介紹如何使用 Spire.Doc for Python 在程序中的輕松 添加文字和

    2024年02月08日
    瀏覽(24)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包