最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue使用fabric.js實現(xiàn)局部截圖與大圖預(yù)覽功能

 更新時間:2024年02月22日 17:01:16   作者:絢麗星空  
這篇文章主要為大家詳細(xì)介紹了Vue如何使用fabric.js實現(xiàn)局部截圖與el-image-viewer大圖預(yù)覽功能,文中的示例代碼講解詳細(xì),感興趣的可以了解下

使用fabric.js裁剪和顯示圖片

示例代碼

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>使用fabric.js裁剪和顯示圖片</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/4.5.0/fabric.min.js"></script>
 
</head>
<body>
    <canvas id="canvas" ></canvas>
    <img id="sourceImage" src="YOUR URL" style="display: none;">
 
    <script>
        // var canvas = new fabric.Canvas('canvas');
        var canvas = new fabric.StaticCanvas("canvas");
        var sourceImage = document.getElementById('sourceImage');
        //截圖位置
        const cropXywh = [821,3799,97,90]
        fabric.Image.fromURL(sourceImage.src, function(img) {
            canvas.add(img);
            var text = new fabric.Text('這里是文本描述', {
                left: 0,
                top: 0,
                fontSize: 16,
                fill: 'red'
            });
            var textWidth = text.width; // 獲取文本的寬度
            var textHeight = text.height; // 獲取文本的高度
            img.set({
                left: 0,
                top: textHeight,
                width: cropXywh[2],
                height: cropXywh[3],
                cropX: cropXywh[0], // 裁剪區(qū)域左上角x坐標(biāo)
                cropY: cropXywh[1], // 裁剪區(qū)域左上角y坐標(biāo)
                cropWidth: cropXywh[2], // 裁剪區(qū)域?qū)挾?
                cropHeight: cropXywh[3] // 裁剪區(qū)域高度
            });
            
           
            let widths = [cropXywh[2],textWidth];
            let maxWidth = Math.max(...widths);
            let maxHeight = cropXywh[3]+textHeight;
            canvas.setWidth(maxWidth);
            canvas.setHeight(maxHeight);
            canvas.add(text);
            canvas.renderAll(); // 更新Canvas
            //若使用elementui可以顯示局部圖放大效果
            //let imgData = canvas.toDataURL({ format: "png", quality: 0.8 });
            // imageData.value = [imgData]
            // showImageViewer.value = true
        });
    </script>
</body>
</html>

效果圖:

大圖預(yù)覽局部圖

再結(jié)合el-image-viewer可以實現(xiàn)大圖預(yù)覽局部圖的效果。

示例代碼

// 圖片預(yù)覽 
      <el-image-viewer
        style="z-index:1500"
        v-if="showImageViewer"
        @close="()=>{showImageViewer = false}"
        :url-list="imageData"
      >
onMounted(() => {
      // 通過遮罩層關(guān)閉圖片預(yù)覽
    document.addEventListener('click',function(e){
        if(e.target.className=="el-image-viewer__mask"){
            let close = document.querySelector(".el-image-viewer__close");
            if(close){
              close.click();
              showImageViewer.value = false
            }else{
             close = document.querySelector(".el-icon-circle-close"); 
              if(close){
                close.click();
                showImageViewer.value = false
              }
            }
        }
    });
 });

到此這篇關(guān)于Vue使用fabric.js實現(xiàn)局部截圖與大圖預(yù)覽功能的文章就介紹到這了,更多相關(guān)Vue fabric局部截圖內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Vue computed實現(xiàn)原理深入講解

    Vue computed實現(xiàn)原理深入講解

    computed又被稱作計算屬性,用于動態(tài)的根據(jù)某個值或某些值的變化,來產(chǎn)生對應(yīng)的變化,computed具有緩存性,當(dāng)無關(guān)值變化時,不會引起computed聲明值的變化。產(chǎn)生一個新的變量并掛載到vue實例上去
    2022-10-10
  • 基于Vue實現(xiàn)封裝一個虛擬列表組件

    基于Vue實現(xiàn)封裝一個虛擬列表組件

    正常情況下,我們對于數(shù)據(jù)都會分頁加載,最近項目中確實遇到了不能分頁的場景,如果不分頁,頁面渲染幾千條數(shù)據(jù)就會感知到卡頓,使用虛擬列表就勢在必行了。本文主要介紹了如何基于Vue實現(xiàn)封裝一個虛擬列表組件,感興趣的可以了解一下
    2023-03-03
  • vue.js使用代理和使用Nginx來解決跨域的問題

    vue.js使用代理和使用Nginx來解決跨域的問題

    下面小編就為大家分享一篇vue.js使用代理和使用Nginx來解決跨域的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-02-02
  • antdesign-vue結(jié)合sortablejs實現(xiàn)兩個table相互拖拽排序功能

    antdesign-vue結(jié)合sortablejs實現(xiàn)兩個table相互拖拽排序功能

    這篇文章主要介紹了antdesign-vue結(jié)合sortablejs實現(xiàn)兩個table相互拖拽排序功能,本文通過實例圖文相結(jié)合給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • Vue.js中Line第三方登錄api的實現(xiàn)代碼

    Vue.js中Line第三方登錄api的實現(xiàn)代碼

    這篇文章主要介紹了Vue.js中Line第三方登錄api實現(xiàn)代碼,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • vue2實現(xiàn)無感刷新token的方式詳解

    vue2實現(xiàn)無感刷新token的方式詳解

    在Web應(yīng)用中,用戶需要通過認(rèn)證和授權(quán)才能訪問受保護的資源,為了實現(xiàn)認(rèn)證和授權(quán)功能,通常需要使用Token來標(biāo)識用戶身份并驗證其權(quán)限,本文給大家介紹了vue2實現(xiàn)無感刷新token的方式,需要的朋友可以參考下
    2024-02-02
  • vue.config.js配置proxy代理產(chǎn)生404錯誤的原因及解決

    vue.config.js配置proxy代理產(chǎn)生404錯誤的原因及解決

    這篇文章主要介紹了vue.config.js配置proxy代理產(chǎn)生404錯誤的原因及解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • vue?頁面卡死,點擊無反應(yīng)的問題及解決

    vue?頁面卡死,點擊無反應(yīng)的問題及解決

    這篇文章主要介紹了vue?頁面卡死,點擊無反應(yīng)的問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • ant-design-vue按需加載的坑的解決

    ant-design-vue按需加載的坑的解決

    這篇文章主要介紹了ant-design-vue按需加載的坑的解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • 在Uni中使用Vue的EventBus總線機制操作

    在Uni中使用Vue的EventBus總線機制操作

    這篇文章主要介紹了在Uni中使用Vue的EventBus總線機制操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07

最新評論

义乌市| 寻乌县| 神农架林区| 岱山县| 巩留县| 武安市| 龙里县| 汤原县| 沙洋县| 大竹县| 安顺市| 凤城市| 鄄城县| 始兴县| 武定县| 滨州市| 镇平县| 玛多县| 玛纳斯县| 耿马| 阜城县| 迁西县| 隆化县| 湘阴县| 华安县| 崇信县| 河北区| 咸丰县| 阿拉善左旗| 灌云县| 泾源县| 延吉市| 阿克| 福安市| 红河县| 梧州市| 武安市| 临泉县| 齐齐哈尔市| 桃园市| 四子王旗|