《Nuxt.js 实战:从放弃到入门》四、轻松制作朋友圈九宫格图片

在这里插入图片描述

功能说明

  1. 设计风格:图片分割功能页面将参考某网页的设计风格,使用 Element Plus 组件库实现界面,旨在确保用户体验流畅,同时保证界面的美观性与易用性。
  2. 页面功能
  • 图片上传区域:支持用户将图片直接拖拽到指定区域进行上传,也可点击上传。仅支持 JPG 和 PNG 格式,文件大小限制为 10MB。
  • 分割参数设置:用户可通过输入行数和列数来设置图片分割的参数,行数和列数的取值范围为 1 到 10。
  • 预览区域:提供上传图片的预览以及分割后图片的预览,方便用户查看分割效果。
  • 下载功能:支持将分割后的图片打包成 ZIP 文件进行下载。

代码实现

  1. 创建页面文件:在项目中创建divide.vue文件,用于实现图片分割功能页面。
<template>
  <div class="container">
    <el-card>
      <template #header>
        <div class="text-center">
          <span class="text-xl font-medium">图片分割</span>
        </div>
      </template>

      <!-- 图片上传区域 -->
      <el-upload
          class="upload-area"
          drag
          :auto-upload="false"
          :show-file-list="false"
          accept="image/*"
          :on-change="handleFileSelect"
      >
        <template #trigger>
          <div v-if="!imageUrl && !isLoading && !errorMessage" class="text-center">
            <el-icon class="el-icon--upload mx-auto block"><upload-filled /></el-icon>
            <div class="el-upload__text">
              拖拽图片到此处或 <em>点击上传</em>
            </div>
            <div class="text-sm text-gray-400 mt-2">支持 JPG、PNG 格式</div>
          </div>
        </template>
      </el-upload>

      <div v-if="isLoading" class="text-center">
        <el-icon class="is-loading" :size="24"><loading /></el-icon>
        <div class="text-gray-600">正在处理图片...</div>
      </div>

      <div v-else-if="errorMessage" class="text-center">
        <el-alert
            :title="errorMessage"
            type="error"
            :closable="false"
        />
        <el-button type="primary" @click="</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

薛尧笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值