Vue使用fabric.js实现局部截图与大图预览功能
更新时间:2024年02月22日 17:01:16 作者:绚丽星空
这篇文章主要为大家详细介绍了Vue如何使用fabric.js实现局部截图与el-image-viewer大图预览功能,文中的示例代码讲解详细,感兴趣的可以了解下
使用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], // 裁剪区域左上角x坐标 cropY: cropXywh[1], // 裁剪区域左上角y坐标 cropWidth: cropXywh[2], // 裁剪区域宽度 cropHeight: cropXywh[3] // 裁剪区域高度 }); 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>
效果图:
大图预览局部图
再结合el-image-viewer可以实现大图预览局部图的效果。
示例代码
// 图片预览 <el-image-viewer style="z-index:1500" v-if="showImageViewer" @close="()=>{showImageViewer = false}" :url-list="imageData" >
onMounted(() => { // 通过遮罩层关闭图片预览 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 } } } }); });
到此这篇关于Vue使用fabric.js实现局部截图与大图预览功能的文章就介绍到这了,更多相关Vue fabric局部截图内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
完美解决vue 项目开发越久 node_modules包越大的问题
这篇文章主要介绍了vue 项目开发越久 node_modules包越大的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2023-09-09vue手机端input change时,无法执行的问题及解决
这篇文章主要介绍了vue手机端input change时,无法执行的问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2023-05-05从Echarts报错中学习Vue3 ref和shallowRef区别及其组件二次封装demo
这篇文章主要介绍了从Echarts报错中学习Vue3 ref和shallowRef区别及其组件二次封装demo,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2023-11-11vue+springboot+element+vue-resource实现文件上传教程
这篇文章主要介绍了vue+springboot+element+vue-resource实现文件上传教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2020-10-10解决vue3中from表单嵌套el-table时填充el-input,v-model不唯一问题
这篇文章主要给大家介绍一下如何解决vue3中from表单嵌套el-table时填充el-input,v-model不唯一问题,文中有相关的解决方法,通过代码示例介绍的非常详细,需要的朋友可以参考下2023-07-07
最新评论