Vue 上传图片裁剪

Vue 上传图片裁剪vue 图片裁剪使用的是 vue cropper

裁剪组件弹框

<template> <div class="image-cropper-modal"> <el-dialog :visible="visible" :append-to-body="true" :close-on-click-modal="false" :title="$t('common.cropImage')" width="700" class="image-cropper-dialog" @close="visible = false" > <vue-cropper ref="imageCropper" :img="url" :auto-crop-width="autoCropWidth" :auto-crop-height="autoCropHeight" :auto-crop="true" :fixed="false" :fixed-number="[1, 1]" :fixed-box="true" :output-size="1" output-type="png" /> <template #footer> <span class="dialog-footer"> <el-button v-t="'common.cancel'" class="common-btn cancel" @click="onCancel" /> <el-button v-t="'common.save'" class="common-btn confirm" type="primary" @click="onConfirm" /> </span> </template> </el-dialog> </div> </template> <script> import { 
    VueCropper } from 'vue-cropper'; export default { 
    name: 'ImageCropperModal', components: { 
    VueCropper, }, props: { 
    visible: { 
    type: Boolean, default: false, }, url: { 
    type: String, default: '', }, autoCropWidth: { 
    type: String, default: `${ 
     104 * 4}`, }, autoCropHeight: { 
    type: String, default: `${ 
     104 * 4}`, }, }, methods: { 
    onCancel() { 
    this.$emit('cancel'); }, onConfirm() { 
    this.$refs.imageCropper.getCropBlob((blob) => { 
    this.$emit('confirm', blob); }); }, }, }; </script> <style lang="scss" scoped> .image-cropper-dialog { 
    .vue-cropper { 
    height: 500px; } } </style> 

使用

<image-cropper-modal :visible="cropperVisible" :url="file" :auto-crop-width="autoCropWidth" :auto-crop-height="autoCropHeight" @cancel="cropperVisible = false" @confirm="onConfirm" /> 

上传图片之后,进行转换、裁剪

async onUpload() { 
    const fileReader = new FileReader(); fileReader.readAsDataURL(files[0]); fileReader.onload = () => { 
    this.file = fileReader.result; this.cropperVisible = true; }; }, async onConfirm(file) { 
    file.name = this.files[0].name; await this.uploadFiles([file]); this.cropperVisible = false; }, 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/204667.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午7:49
下一篇 2026年3月19日 下午7:49


相关推荐

  • margin对css绝对定位的影响

    margin对css绝对定位的影响原文链接 http leyteris iteye com blog 试验 css 绝对定位时 跟自己预想的不太一样 有点迷 查了之后才发现还有 margin 的影响 正文 对于 div 的绝对定位一直以为 margin 属性是无效的 只是通过 top left bottom right 定位 然而今天的却发现不是这样的 于是对其做了些实验

    2025年10月7日
    6
  • deepin安装rabbitvcs svn[通俗易懂]

    deepin安装rabbitvcs svn[通俗易懂]https://bbs.deepin.org/post/189817

    2022年7月18日
    21
  • navicate15.0.23激活码【在线注册码/序列号/破解码】

    navicate15.0.23激活码【在线注册码/序列号/破解码】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月18日
    48
  • 一等奖!科大讯飞星火智能批阅机再获行业大奖

    一等奖!科大讯飞星火智能批阅机再获行业大奖

    2026年3月14日
    3
  • 基本稳压电路

    基本稳压电路经过整流后的电源具有较大的电压纹波,单靠调节滤波电容不能明显改善输出电源纹波特性,因此需要采用稳压电路来减小输出电源的纹波。若直将稳压管接至负载输出,则稳压管的工作特性受负载影响较大,甚至会出现不能正常工作的情况。采用下图所示的稳压电路则能保证稳压管始终能够正常工作。其核心思想仍然是负反馈。运放正输入端采用稳压管提供一个相对稳定的基准电压,并通过同相放大在输出端得到一个稳定的输出电压。而由于运放具有一定的电源抑制比,所以在供电电压在一定范围波动时,其仍可正常工作。同向比例运放的输出电流有限,故采用了

    2022年6月20日
    36
  • JS后退一页

    JS后退一页Javascript返回上一页:1.history.go(-1),返回两个页面:history.go(-2);2.history.back().3.window.history.forward()返回下一页4.window.history.go(返回第几页,也可以使用访问过的URL)例:向上一页response.Write(“”) response.W

    2022年7月25日
    16

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号