fast-poster通用海报生成器诞生记

2024-04-01 10:18

本文主要是介绍fast-poster通用海报生成器诞生记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

fast-poster通用海报生成器诞生记

电商海报痛点

做过电商的朋友应该都知道,通过该海报二维码分享引流是一个必须的功能。所以,顺理成章就会有海报开发的需求。

通常,我们开发海报,都需要编写复杂,冗余,生疏的底层绘图代码。这让浪费了许多时间不说,还容易出错,开发效率也不高。

好不容易,把动态部分组件的位置一个像素一个像素对比调整好后。UI跑过来说,这个海报位置还要调整一下。突然间,整个人都不好了。

面对需求变动,作为开发人员能做的只能是迎难而上。但是,又不想苦逼的去做一些没有价值,或者说价值不大的重复劳动。

基于N个电商项目海报生成踩坑经历,我决定开发一款通用的海报生成器,把自己从繁琐的位置调整绘图代码编写等一系列重复且没有意义的劳动中解放出来。

不重复造轮子

做研发的小伙伴都知道,不重复造轮子(能懒则懒)这个基本准则。网上各种搜寻一圈,发现做这块的还真不少。有通过小程序端生成的,也有通过后端生成的。

基本原理是通过自己编写一个json字符串,相当于是海报绘制的配置,然后传给绘制引擎,来生成海报。

这样虽然解屏蔽底层的绘图代码编写。但还是需要手动编写json字符串,特别是设置到组件的位置调整,还是需要一个像素一个像素来调。来来回回,也不是方便,不能解放我们的生产力。

牛刀小试

凭着自己多年的开发经验,我构思的通用海报生成器,需要具备以下基本的功能。

  • 不需要编写底层的绘图代码
  • 可以通过拖拽的方式控制组件的位置
  • 能生成调用端的代码,彻底解放生产力

经过几个月的打磨,一款初具雏形的通用海报生成器完成了。也放在了客户的生产环境接受考验。

客户的产品,用户数已经达到32W+,而且还在持续增长中。服务器资源占用也不多,客户比较满意。至今已稳定运行了2年多时间。

初涉开源

好的东西,要拿出来分享,持续改进。我决定开源这款海报生成器。今年3月份,把代码放到gitee仓库,本想着肯定会被疯狂star,不过直到6月份,基本都无人问津。⭐️⭐️数还是个位数。

心有不甘,请教了好朋友开源大佬-Mark哥,通过把代码收入gitee软件库,发软件新闻等方式。慢慢的,也有不少小伙伴star,⭐️⭐️数终于突破了100颗。

希望自己能坚持下去,把fast-poster通用海报生成器继续完善下去。

感兴趣的小伙伴,不妨给个star

  • 在线演示地址
  • 项目仓库地址-github
  • 项目仓库地址-gitee

效果展示

设计器

代码生成

这篇关于fast-poster通用海报生成器诞生记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/866895

相关文章

j2EE通用jar包的作用

原文:http://blog.sina.com.cn/s/blog_610901710101kx37.html IKIKAnalyzer3.2.8.jar // 分词器 ant-junit4.jar // ant junit antlr-2.7.6.jar // 没有此包,hibernate不会执行hql语句。并且会报NoClassDefFoundError: antlr

通用内存快照裁剪压缩库Tailor介绍及源码分析(一)

背景 我们知道内存快照是治理 OOM 问题及其他类型的内存问题的重要数据源,内存快照中保存了进程虚拟机的完整的堆内存数据,很多时候也是调查其他类型异常的重要参考。但是dump出来的堆转储文件.hprof往往很大,以 LargeHeap 应用为例,其 OOM 时的内存快照大小通常在512M左右,要有效的存储和获取都是一个问题。 线下拿到hprof文件相对容易,也可以预防OOM,但覆盖的场景十分有

纸牌函数生成器

此模板用来生成纸牌类的测试数据,本人手打,不合理或缀余的地方希望大神指出。 T=10000(测试数据组数), t (两摞相等的牌,每摞牌的数量); 每张牌用A,2~9,T,J,Q,K;表示牌面大小; 用S,H,C,D;表示花色。 共52张牌。 #include<stdio.h>#include<time.h>#include<stdlib.h>#include<string.

SpringBoot中利用EasyExcel+aop实现一个通用Excel导出功能

一、结果展示 主要功能:可以根据前端传递的参数,导出指定列、指定行 1.1 案例一 前端页面 传递参数 {"excelName": "导出用户信息1725738666946","sheetName": "导出用户信息","fieldList": [{"fieldName": "userId","fieldDesc": "用户id"},{"fieldName": "age","fieldDe

【生日视频制作】酒吧一群美女车展模特大屏幕视频改字AE模板修改文字软件生成器教程特效素材【AE模板】

生日视频制作教程酒吧一群美女车展模特大屏幕视频改字AE模板修改文字特效广软件告生成神器素材祝福玩法AE模板工程 怎么如何做的【生日视频制作】酒吧一群美女车展模特大屏幕视频改字AE模板修改文字软件生成器教程特效素材【AE模板】 生日视频制作步骤: 安装AE软件 下载AE模板 把AE模板导入AE软件 修改图片或文字 渲染出视频

数据结构(邓俊辉)学习笔记】排序 5——选取:通用算法

文章目录 1. 尝试2. quickSelect3.linearSelect:算法4. linearSelect:性能分析5. linearSelect:性能分析B6. linearSelect:性能分析C 1. 尝试 在讨论过众数以及特殊情况下中位数的计算方法以后,接下来针对一般性的选取问题,介绍优化的通用算法。 既然选取问题的查找目标就是在整个数据集中按大小次序秩为 k

每天一道面试题(2):fail-safe 机制与 fail-fast 机制分别有什么作用?

当谈论Java集合的 fail-fast 和 fail-safe 机制时,涉及的是在集合被并发修改时的行为和处理方式。这些机制对保证程序的正确性和稳定性非常重要,尤其是在多线程环境中。 1. Fail-Fast 机制 定义: Fail-fast 机制的核心是在检测到集合在遍历过程中被修改时,立即抛出 ConcurrentModificationException 异常,从而中断迭代操作。这种

[Python]生成器和yield关键字

生成器和yield关键字 1.生成器介绍: 概述: ​ 它指的是 generator, 类似于以前学过的: 列表推导式, 集合推导式, 字典推导式… 作用: ​ 降低资源消耗, 快速(批量)生成数据. 实现方式: ​ 1.推导式写法. my_generator = (i for i in range(5)) ​ 2.yield写法. def get_generator():for i

Mybatis自动生成器的使用方式

文章目录 编写generator配置文件配置maven插件第一种启动方式第二种启动方式 编写generator配置文件 <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE generatorConfigurationPUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration