IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> vue项目 (element-ui + vue-cropper) 创建一个实用的图片尺寸调整 角度调整 图片上传工具 -> 正文阅读

[JavaScript知识库]vue项目 (element-ui + vue-cropper) 创建一个实用的图片尺寸调整 角度调整 图片上传工具

还是先在项目中引入依赖

npm install element-ui@2 --save
npm install element-plus --save
npm install vue-cropper@next --save

main.js 参考代码如下

import {createApp} from 'vue'
import App from './App.vue'

import ElementPlus from 'element-plus';
import 'element-plus/dist/index.css';

createApp(App).use(ElementPlus).mount('#app')

这样我们element-ui组件库就进来了
因为我们这个是新建的项目 代码就直接写在App.vue里了
App.vue参考代码如下

<template>
  <div id = "app">
      <VueCropper
        ref="cropper"
        :img="options.img"
        style = "width: 400px;height: 300px;"
        :info="true"
        :autoCrop="options.autoCrop"
        :autoCropWidth="options.autoCropWidth"
        :autoCropHeight="options.autoCropHeight"
        :fixedBox="options.fixedBox"
        @realTime="realTime"
      ></VueCropper>
      <div class = "control">
          <el-upload action="#" :show-file-list="false" :before-upload="beforeUpload">
              <el-button size="small">
                  选择
              <i class="el-icon-upload el-icon--right"></i>
              </el-button>
          </el-upload>
          <div>
              <el-button size="small" @click="changeScale(1)">放大</el-button>
          </div>
          <div>
              <el-button size="small" @click="changeScale(-1)">缩小</el-button>
          </div>
          <div>
              <el-button size="small" @click="rotateLeft()">左侧偏转</el-button>
          </div>
          <div>
              <el-button size="small" @click="rotateRight()">右侧偏转</el-button>
          </div>
      </div>
      <div class = "control">
          <el-button type="primary"  @click="Submit()">提交</el-button>
      </div>
  </div>
</template>

<script>
import 'vue-cropper/dist/index.css'

//组件中使用
import { VueCropper }  from "vue-cropper";
export default {
  name: 'App',
  components: { VueCropper },
  data(){
    return {
      options: {
          img: '', //裁剪图片的地址
          autoCrop: true, // 是否默认生成截图框
          autoCropWidth: 200, // 默认生成截图框宽度
          autoCropHeight: 200, // 默认生成截图框高度
          fixedBox: true // 固定截图框大小 不允许改变
      },
    }
  },
  methods:{
      realTime(data) {
          console.log(data);
      },
       // 上传预处理
      beforeUpload(file) {
          if (file.type.indexOf("image/") == -1) {
              this.$modal.msgError("文件格式错误,请上传图片类型,如:JPG,PNG后缀的文件。");
          } else {
              const reader = new FileReader();
              reader.readAsDataURL(file);
              reader.onload = () => {
              this.options.img = reader.result;
              };
          }
      },
      // 图片缩放
      changeScale(num) {
          num = num || 1;
          this.$refs.cropper.changeScale(num);
      },
      // 向左旋转
        rotateLeft() {
            this.$refs.cropper.rotateLeft();
        },
        // 向右旋转
        rotateRight() {
            this.$refs.cropper.rotateRight();
        },
        Submit(){
            this.$refs.cropper.getCropData(data => {
              console.log(data);
            })
        }
  }
}
</script>

<style>
.control{
    display: flex;
    margin-top:15px;
}
</style>

然后我们得到的界面效果就是这样的
在这里插入图片描述
点击选择 选择一张图片上传上去
在这里插入图片描述
在这里插入图片描述
放大缩小 都可以玩一玩
还有偏转
在这里插入图片描述
点击提交时这里我们只是在控制台输出了一下处理好的图片加密字符串
上传图片需要后台人员配合处理
在这里插入图片描述

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-07-03 10:40:34  更:2022-07-03 10:42:23 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/11 10:10:37-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码