开源项目 | 一款基于NodeJs+Vue3的强大的在线设计图片工具
一、项目概述
一款漂亮且功能强大的在线海报图片设计器,仿稿定设计。适用于海报图片生成、电商分享图、文章长图、视频/公众号封面等多种场景。
二、 技术特性
丝滑的操作体验,丰富的交互细节,基础功能完善
采用服务端生成图片,确保多端出图统一性,支持各种 CSS 特性
简易 AI 抠图工具,上传图片一键去除背景
技术栈:Vue3 、Vite2 、Vuex 、ElementPlus
图片生成:Puppeteer、Express
三、 系统功能
导入 PSD 文件解析成模板、在线导出图片下载
元素拖拽、组合、缩放、层级调整、对齐等操作。
图片素材插入、替换、裁剪,图片容器等功能。
SVG 素材颜色、透明度编辑,文字花字组合。
画布自定义尺寸、滚轮缩放、自适应画布
吸附对齐、辅助引导线、标尺功能。
键盘快捷键、右键菜单快捷操作,复制删除等常用操作。
风格二维码编辑,支持单色、渐变、自定义 logo 等。
图层操作,支持拖拽变更层级。
颜色调色板,原生级取色器颜色吸管(Chrome)。
五、 本地运行
环境需求:Node.js v16.18 以上版本
git clone https://github.com/palxiao/poster-design.git
cd poster-design
安装依赖
npm run prepared
网络太慢?尝试运行:npm config set registry https://registry.npmmirror.com 再安装依赖
本地运行
npm run serve
将会同时运行前端界面与图片生成服务(3000端口为前端项目,7001端口为图片生成服务):

如果你本地没有成功启动两个服务,可能是 win 系统不兼容,手动进 screenshot 目录安装依赖(npm install)并启动服务(npm run dev) 或者使用 VSCode 自带的终端来运行命令,注意不要使用 CMD。
五 、功能截图


六、项目源码
开源地址:
扫描下方二维码并回复【poster-design】获取项目源码

往期推荐
写在最后
专注分享开源项目整套解决方案,完全开源、可学习、可商用、宝藏库。
完整开源项目后端技术栈:Spring6、JDK17、SpringBoot、Spring Cloud、Docker、Nginx、Redis、MongoDB、MySql不管你技术提升还是接私活都可以用到。
完整开源项目前端技术栈:vue3、vite3、TypeScript/4、Ant-Design-Vue/3.2、element-plus/2.2、uniapp、H5网页、PC、微信小程序等最新的技术。
每天提供一个超棒的开源项目包含:物联网平台、WMS系统、ERP系统、OMS系统、知识社区、个人博客系列。

欢迎加入【前端开源实验室读者交流群】,群内聊天学习摸鱼为主,不定时会分享一些技术要点和优质学习资源,有一群有趣有料的小伙伴在等你哦!
进群方式:加柚子哥微信回复 进群,按提示操作即可进群。
版权申明:内容来源网络,版权归原创者所有。除非无法确认,我们都会标明作者及出处,如有侵权烦请告知,我们会立即删除并表示歉意。
开源项目 | 一款基于NodeJs+Vue3的强大的在线设计图片工具的更多相关文章
- 如何开发一款基于 Vite+Vue3 的在线表格系统(上)
今天,葡萄带你了解如何基于Vite+Vue3实现一套纯前端在线表格系统. 在正式开始项目介绍之前,首先咱们首先来介绍一下Vite和Vue3. Vue3 Vue是什么?大多前端开发者对这个词已毫不陌生了 ...
- [Java 开源项目]一款无需写任何代码,即可一键生成前后端代码的工具
作者:HelloGitHub-小鱼干 JeecgBoot 是一款基于代码生成器的低代码开发平台,零代码开发.JeecgBoot 采用开发模式:Online Coding 模式-> 代码生成器模式 ...
- [DIOCP3/MyBean/QDAC开源项目] DataModule-DB例子基于MyBean的插件实例<三层数据库方案>
[说明] 这个例子答应大家很久了,一直没有时间弄,现在正式结合MyBean插件可以很方便的在客户端共享操作连接,执行数据库的各项工作,屏蔽了底层的通信解码器编码等工作,直接传递Variant,给了开发 ...
- 安装开源项目 MultiType (基于 RecyclerView)出现的各种问题 -- 自己的第一篇博客
一.引入开源项目的方式 使用开源项目 MultiType 的两种方式: 1.maven引入:在主Module 的 build.gradle 中加入 dependencies { ...... comp ...
- 如何开发一款基于 vite+vue3 的在线表格系统(下)
在上篇内容中我们为大家分享了详细介绍Vue3和Vite的相关内容.在本篇中我们将从项目实战出发带大家了解Vite+Vue3 的在线表格系统的构建. 使用Vite初始化Vue3项目 在这里需要注意:根据 ...
- 【开源项目】电视盒子好用又强大的APP: TVRemoteIME
TVRemoteIME 电视盒子的远程输入法应用,可跨屏远程输入.跨屏远程控制盒子.远程文件管理.HTTP/RTMP/MMS网络视频直播.ED2K/种子文件的视频文件边下边播 应用的诞生 自从家里有电 ...
- 一款基于 Android 开发的离线版的 MM 图片浏览 App
一款离线版的 MM 图片浏览 App,有点类似掌上百度的图片专栏应用.图片采用瀑布流展示方式,点击图片集,支持左右手势滑动切换图片:支持放大缩小功能. 实现功能:1)图片完全离线,不耗个人 GPRS ...
- TouTiao开源项目 分析笔记11 以总体到局部的思路 构建图片主列表
1.构建图片主列表的整体片段PhotoTabLayout 1.1.首先创建一个PhotoTabLayout片段 public class PhotoTabLayout extends Fragment ...
- 基于nopcommerce b2c开源项目的精简版开发框架Nop.Framework
http://www.17ky.net/soft/70612.html?v=1#0-sqq-1-39009-9737f6f9e09dfaf5d3fd14d775bfee85 项目详细介绍 该开源项目是 ...
- node-odata: 基于 NodeJS 的 REST 框架
该开源项目目前已被 OData 官网 (odata.org)收录 关于 node-odata node-odata 可以让你轻松创建 REST API, 并能使用 OData 协议的格式进行数据的查询 ...
随机推荐
- Unparseable date: "2019-03-27"
Unparseable date: "2 public static void main(String[] args) { try { String dateStr="2019-0 ...
- XTTS系列之四:迷迷糊糊的并行度
项目测试组又反馈一个问题,XTTS执行全量备份速度慢,影响测试进度. 实际算了下,平均速度才150MB/s.. 这个速度在客户生产环境的确是不够看,首先询问是否开了并行,开了多少? 回复是说有开32个 ...
- 使用官方推荐的库来测react hook组件
最近写单元测试的时候遇见了一些问题,当我使用使用jest测React. useRef, React. useEffect时,总是测不到, 然后我去查阅了一下官方文档,它推荐了使用下面这个库 @tes ...
- 使用netdata 监控Linux 主机
在linux主机上,直接使用下面的命令创建容器即可 docker run -d --name=netdata \ -p 19999:19999 \ -v netdataconfig:/etc/netd ...
- Vue报错Custom elements in iteration require 'v-bind:key' directives."错误解决
错误代码 <swiper> <swiper-item v-for="item in banners"> <a :href="item.lin ...
- 解决AccessDatabaseEngine.exe 32位64位安装失败问题
cmd下执行 你的路径\AccessDatabaseEngine.exe /quiet 转载于:https://www.cnblogs.com/64mb/p/10844676.html
- 青少年CTF平台-Web-Robots
题目信息 题目名称:Robots 题目描述:昨天十三年社团讲课,讲了Robots.txt的作用,小刚上课没有认真听课正在着急,你能不能帮帮忙? 题目难度:一颗星 解题过程 访问题目链接 在这里插入图片 ...
- 加密解决HTTP协议带来的安全问题
HTTP协议默认是采取明文传输的,容易被中间人窃听.拦截.篡改,存在安全隐患. 常见提高安全性的方法是对通信内容进行加密,再进行传输,常见的加密方式有 不可逆加密:单向散列函数 可逆加密:对称加密.非 ...
- js实现继承的五种方法及原型的继承关系
继承是javascript中实现代码复用的一种方式,也能绑定对象或者函数之间的关系 为什么要继承 比如以下代码,Person.Student和Teacher构造函数,可以发现他们有一些特征 Perso ...
- 【算法】编写一个函数,返回两个正数的和,有可能超过ulong长度
编写一个函数,返回两个数字的和.输入数字是字符串,函数必须返回一个字符串. 示例: 添加("123","321"):->"444" 添 ...