首页 > 其他分享 >js tui-image-editor 使用,图片编辑插件

js tui-image-editor 使用,图片编辑插件

时间:2025-01-06 23:00:30浏览次数:1  
标签:toast 插件 const Image js editor image imageEditorInstance

效果查看地址

https://ui.toast.com/tui-image-editor

image

github地址

https://github.com/nhn/tui.image-editor

vue 项目安装方式

yarn add @toast-ui/image-editor

vue3 使用demo

<template>
  <div class="image-editor-container">
    <!-- TUI Image Editor 容器 -->
    <div ref="editorContainer" class="editor"></div>

    <!-- 操作按钮 -->
    <div class="controls">
      <button @click="loadImage">Load Image</button>
      <button @click="exportImage">Export Image</button>
      <button @click="resetEditor">Reset</button>
    </div>
  </div>
</template>

<script setup>
import { onMounted, ref, onBeforeUnmount } from 'vue';
import '@toast-ui/image-editor/dist/toastui-image-editor.min.css';
import { ImageEditor } from '@toast-ui/image-editor';

// 引用容器元素
const editorContainer = ref(null);
let imageEditorInstance = null;

// 初始化 TUI Image Editor
onMounted(() => {
  if (editorContainer.value) {
    imageEditorInstance = new ImageEditor(editorContainer.value, {
      includeUI: {
        loadImage: {
          path: 'https://placekitten.com/600/400', // 初始加载的图片路径
          name: 'Sample Image'
        },
        theme: 'white', // 主题颜色(可选:'black' 或 'white')
        initMenu: 'filter', // 初始打开的菜单(例如:'filter', 'crop', 'draw' 等)
        menuBarPosition: 'top' // 菜单栏位置(可选:'top' 或 'bottom')
      },
      cssMaxWidth: 700, // 编辑器的最大宽度
      cssMaxHeight: 500, // 编辑器的最大高度
      usageStatistics: false // 是否启用使用统计(默认为 true)
    });

    // 监听图像加载完成事件
    imageEditorInstance.on('load.image.complete', () => {
      console.log('Image loaded successfully!');
    });

    // 监听图像导出完成事件
    imageEditorInstance.on('export.image.complete', (event) => {
      console.log('Image exported:', event.data);
    });
  }
});

// 卸载时销毁 TUI Image Editor 实例
onBeforeUnmount(() => {
  if (imageEditorInstance) {
    imageEditorInstance.destroy();
    imageEditorInstance = null;
  }
});

// 加载图像
const loadImage = () => {
  const imageUrl = prompt('Enter the URL of the image you want to load:');
  if (imageUrl) {
    imageEditorInstance.loadImageFromURL(imageUrl, 'User Image');
  }
};

// 导出图像
const exportImage = () => {
  const exportedImage = imageEditorInstance.exportImage('jpg', 0.9);
  const link = document.createElement('a');
  link.href = exportedImage;
  link.download = 'edited-image.jpg';
  link.click();
};

// 重置编辑器
const resetEditor = () => {
  imageEditorInstance.reset();
};
</script>

<style scoped>
.image-editor-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 20px;
}

.editor {
  width: 100%;
  max-width: 700px;
  margin-bottom: 20px;
}

.controls {
  display: flex;
  gap: 10px;
}

button {
  padding: 10px 20px;
  font-size: 16px;
  cursor: pointer;
}
</style>

标签:toast,插件,const,Image,js,editor,image,imageEditorInstance
From: https://www.cnblogs.com/jocongmin/p/18656469

相关文章

  • js WeakSet适用场景
    WeakSet非常适合用于临时处理数据,尤其是在你希望避免内存泄漏的情况下。以下是WeakSet适合用于临时处理数据的一些具体原因和场景:1.防止内存泄漏当你需要将某些对象标记为“已处理”或“正在处理”,但又不希望这些对象因为被集合引用而阻止垃圾回收时,WeakSet是一个理想的选......
  • js Weakset和Set 对比,弱引用和强引用
    Set和WeakSet都保存对对象(如obj1)的引用,但它们处理这些引用的方式不同,这直接影响到垃圾回收的行为。强引用vs.弱引用强引用:当一个对象被Set引用时,Set持有的是对该对象的强引用。这意味着只要Set存在并且包含这个对象,JavaScript的垃圾回收机制就不会回收这个对象,即......
  • js WeakMap 作用和使用
    WeakMap是JavaScript中的一种键值对集合,类似于Map,但它有一些独特的特性,特别是关于其键的引用方式。WeakMap的键只能是对象,并且这些键是以弱引用的方式持有的。这意味着如果一个对象只被WeakMap引用而没有其他强引用,那么这个对象可能会在任何时候被垃圾回收。因此,WeakMap适......
  • node.js”莲花“停车收费系统平台程序+论文 可用于毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容一、选题背景关于停车收费系统平台的研究,现有研究主要以通用型停车系统为主,专门针对“莲花”地区的停车收费系统的研究较少。在国内外,停车管理相关研究成果众多,例如......
  • node.js《c语言程序设计》网上考试系统程序+论文 可用于毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容一、选题背景关于《C语言程序设计》网上考试系统的研究,现有研究多集中于传统考试模式向线上模式的简单转换,主要以功能实现为主,如基本的题目设置、答题与评分功能等。......
  • node.js《畅行租车》程序+论文 可用于毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容一、选题背景关于汽车租赁系统的研究,现有研究主要集中在大型连锁租车企业的运营模式和管理系统优化方面。专门针对小型租车公司或者新兴租车业务模式(如个人车主出租......
  • JSP程序设计2016花店在线销售管理系统(源码)
    项目包含:源码、讲解视频、说明文档,部署录像运行环境:推荐jdk1.8开发工具:Eclipse、MyEclipe以及idea(推荐)操作系统:windows108G内存以上(其他windows)浏览器:GoogleChrome(推荐)、Edge、360浏览器;数据库:MySQL5.7;数据库可视化工具:NavicatPremium推荐)以及其他Navicat版本......
  • vue3+elementPlus实现利用 JSON 数据(`formItems`)描述表单结构,配置化生成表单
    一、功能点(一)组件功能点动态表单生成根据formItems配置动态生成表单项,支持多种类型(如input、radio、select)。表单校验通过rules定义表单校验规则,调用validate方法触发校验。双向绑定表单项通过v-model绑定到form对象,实现数据同步。支持扩展性支持通过form......
  • 【Vue.js 组件化】高效组件管理与自动化实践指南
    文章目录摘要引言组件命名规范与组织结构命名规范目录组织依赖管理工具自动化组件文档生成构建自动引入和文档生成的组件化体系代码结构自动引入组件配置使用Storybook展示组件文档自动生成代码详解QA环节总结参考资料摘要在现代前端开发中,组件化管理是Vue.......
  • buildroot ffmpeg 及 PJSIP安装使用详解
    目录buildrootpjsip安装编译声卡验证buildrootffmpeg常用命令arecord&aplay声卡调测命令开发板接USB音箱开发板自带音箱硬件:rk3568平台,系统:buildroot,交叉编译pjsip,并介绍pjsip录放音常用测试验证命令,以及ffmpeg音视频频采集命令。buildrootpjsip安装......