做教育招生网站,软件界面设计的基本原则,网站建设而,手机在线做网站心路历程
为什么要做
在22年9月的某一天#xff0c;在公司开需求评审时#xff0c;接到了一个给PDF、图片添加水印的需求。做为一个刚工作的CURD程序员#xff0c;在遇到这些问题时#xff0c;第一反应是去github上找找有没有类似的开源框架。但是#xff0c;出乎我意料…心路历程
为什么要做
在22年9月的某一天在公司开需求评审时接到了一个给PDF、图片添加水印的需求。做为一个刚工作的CURD程序员在遇到这些问题时第一反应是去github上找找有没有类似的开源框架。但是出乎我意料的是竟然没有一个统一的框架都是各个文件有着各个文件添加水印的框架。并没有一个大一统的框架。此时就萌生出一个想法了我能不能写一个呢于是EasyWatermark出现了在一开始的想法中框架的主要的作用就是传入一个文件并设置本次要添加的水印即可在文件中添加水印内容。但在开发的途中却意外连连。
自我怀疑以及坚持下去
从git提交记录可以发现一点端倪整个仓库的提交时间可以大致的分为三个阶段
2022年11月框架初期搭建自我怀疑期
框架刚搭建时由于已经在工作上实现了PDF添加水印的功能了所以能够很快的搭建完初始框架。但是问题也随之而来了那个时候我常常在想这个框架真的有人用嘛添加水印这么简单的功能为什么要写一个框架出来呢这个时候陷入了深深的怀疑当中于是乎开发进度也就停止了下来。
2023年2月确定框架入口类
在2月这个时间点我也忘记了为什么自己又重新开始了框架的开发。但是在这个月中实际上是没有开发任何框架的功能的只是在想着框架该如何规划好。
项目名称变更从all-watermark变为easy-watermark增加框架入口类参照easy-excel的使用方式进行了开发创建了EasyWatermark入口类毫无用处的水印位置计算策略类
写着写着代码问题又出现了内部逻辑设计已经规划好了但是该如何设计简单易用的API供其他人使用呢开发进度又双叒叕停滞了。
以及最近的4月5月
忘记是在4月的哪一天了在床上刷抖音时看到一个视频视频的大致内容是两个人其中一个人让一个男生去做一件事情一开始这个男生就说不会做得不好别让他做。那个人又说我本来就没想着让你做的多好你先去试试。于是乎那个男生就去做了做完之后觉得自己做的蛮不错的。那个人又说一开始肯定做的不好但是你一直想着做得不好就不去做那永远都不会好。 不要一开始就想要做的多好重要的是得先开始做哪怕做的再不好也好过不去尝试。 正是看了这个视频之后我又想起了我还有一个开源框架仍在开发中并且开发这个框架的经历跟视频的差不多于是乎我又开始完善的我水印框架了。在最近的两个月中我重构了大部分代码定义好了四种水印渲染类型定义了一个扩展接口用于用户自定义页面的水印。说了这么多简单介绍一下我开发的水印框架吧。
Easy-Watermark
框架功能
抽象了各个文件类型对于添加水印的API内部提供了多种预设水印类型以供使用无需二次开发。
快速开始
pom文件中引入依赖
dependencygroupIdorg.easywatermark/groupIdartifactIdeasy-watermark/artifactIdversion0.0.2/version
/dependency使用水印框架
byte[] result EasyWatermark.create().file(fileData).text(Easy-Watermark).execute();支持文件类型
PDF、图片类型、Office套件文件仍在开发中
内置水印类型
CUSTOM自定义水印使用框架抽象的统一方法对传入文件的每个页面进行特殊处理CENTER居中在页面的各个居中位置上添加。OVERSPREAD页面铺满可设置倾斜角度DIAGONAL页面对角水印
最后
更多的信息可以去到仓库页面查看https://github.com/AzirZsk/easy-watermark如果觉得我的框架写的还不错请帮忙在GitHub点个⭐️Star你的支持是我开发的动力。