fabric photo
这是一个流行离开的世界,但是我们都不擅长告别。——《生活在别处》 今天分享一个fabric photo,它是一个基于 canvas 的纯前端的图片编辑器,支持方形,圆形,箭头,缩放,拖拽,鹰眼,马赛克,涂鸦,线条,导出 png,剪切等 github地址:https://github.com/ximing/fabric-photo 在线体验Demo:https://ximing.github.io/fabric-photo/ 找了很多个,这个应该是很好用的了 并且协议为MIT,支持商用
制作gif表情包
教育不是注满一桶水,而是点燃一把火。 ——叶芝 分享一个制作gif表情包的开源项目: https://github.com/xtyxtyx/sorry 大家可以体验一下: https://sorry.xuty.tk/ 另有 python版,由@East196编写 java版,由@li24361编写 nodejs版,由@q809198545编写 C# ASP.NET版,由@shuangrain编写 微信小程序,由@CoXier编写 微信小程序,由@trumanwong编写 nodejs版(使用Drawtext filter渲染),由@SnailDev编写 网页版(使用Canvas渲染),由@hhhhhg编写 PHP版,由@PrintNow编写 Golang版,由@Hentioe编写 AlfredWork版,由@BlackDragonF编写 nodejs版(使用koa2),由@wadejs编写 VuePress版,由@fritx编写 网页版,由@WincerChan编写
启动时获取端口号
人类文化的悲哀,是流俗的易传、高雅的失传。——木心 我们可以如下写法在boot项目启动时获取端口号 12345678910111213141516171819202122232425package com.ruben.simplescaffold;import lombok.extern.slf4j.Slf4j;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.context.ConfigurableApplicationContext;import org.springframework.core.env.Environment;/** * 主启动类 * * @author <achao1441470436@gmail.com> * @since 2021/5/18 0018 14:52 */@Slf4j@SpringBoot...
react快速上手
一个人能否有成就,只看他是否具备自尊心与自信心两个条件。——苏格拉底 今天想简单玩玩React,我们打开React官方文档: https://react.docschina.org/ 点击入门教程 通过简单的介绍后,我们开始代码编写 打开提供的在线初始代码(我们之后再搭建本地开发环境来完成这个游戏,今天暂时只做一个简单入门): https://codepen.io/gaearon/pen/oWWQNa?editors=0010 打开codepen提供的在线编辑器,看到初始代码后,我们可以开始尝试编写 注意看文档,这里三个React组件Square正方形、Board画板以及Game游戏 看到代码中的结构为主入口: 123456// ========================================ReactDOM.render( <Game />, document.getElementById('root')); 其中通过root这个id绑定了一个节点,包含了一个Game组件 123456789101112131415cl...
includes
一个人能在鼠疫和生活的赌博中所赢得的全部东西,就是知识和记忆。——《鼠疫》 我们除了使用indexOf判断字符串/数组是否包含某字符/元素还可以使用includes 区别在于数组判断中indexOf对NaN值处理会错误,而includes不会,例如: 这里显示-1说明没有匹配到 而使用includes: 可以看到成功匹配 字符串也可以使用includes 非常的方便 我们可以用prototype获取原型对象然后再调用 1Array.prototype.includes.call([1,2,3,4],1) 还是蛮方便的
hutool中@Alias
何必向不值得的人证明什么,生活得更好,乃是为你自己——忽而今夏 我们可以使用hutool中的@Alias注解去给bean取别名,例如: 1234567@Datapublic static class BeanWithAlias { @Alias("name") private String value1; @Alias("age") private Integer value2;} 然后别名不仅能在BeanUtil.copyProperties中使用,还可以在JSONUtil中使用: 123456789101112131415final BeanWithAlias beanWithAlias = new BeanWithAlias();beanWithAlias.setValue1("张三");beanWithAlias.setValue2(35);final JSONObject jsonObject = JSONUtil.parseObj(beanWithAlias);Assert.asse...
新增SqlHelper.execute
茅草屋顶下住着自由人,大理石和黄金下栖息着奴隶。——塞涅卡 昨晚提交了个PR到Mybatis-Plus,目前还没有处理 不过这个函数确实让开发便利了不少 链接:https://gitee.com/baomidou/mybatis-plus/pulls/215/files 使用方式很简单: 例如查询Entity表内所有数据: 1List<Entity> entityList = SqlHelper.execute(Entity.class, m -> m.selectList(Wrappers.lambdaQuery())); 在第二个参数中你可以传入lambda,直接用Entity的BaseMapper进行CRUD操作 这个方法自动对SqlSession进行了回收,还是蛮好用的 我顺便把原来的SimpleQuery.selectList也进行了调整 改为了 1234567891011/** * 通过entityClass查询列表,并关闭sqlSession * * @param entityClass 表对应实体 * @param wrapper ...
日期时间的格式化编码
青春是一种持续的陶醉,是理智的狂热。——拉罗什富科 分享一下格式化日期时间用的编码: 字母 描述 示例 G 纪元标记 AD y 四位年份 2001 M 月份 July or 07 d 一个月的日期 10 h A.M./P.M. (1~12)格式小时 12 H 一天中的小时 (0~23) 22 m 分钟数 30 s 秒数 55 S 毫秒数 234 E 星期几 Tuesday D 一年中的日子 360 F 一个月中第几周的周几 2 (second Wed. in July) w 一年中第几周 40 W 一个月中第几周 1 a A.M./P.M. 标记 PM k 一天中的小时(1~24) 24 K A.M./P.M. (0~11)格式小时 10 z 时区 Eastern Standard Time ‘ 文字定界符 Delimiter “ 单引号 `
大额数字转节权位
一花凋零,荒芜不了整个春天。——巴尔扎克 今天在hutool提交了个PR https://gitee.com/dromara/hutool/pulls/536 NumberChineseFormatter.formatSimple,用于将阿拉伯数字(支持正负整数)四舍五入后转换成中文节权位简洁计数单位,例如 -5_5555 =》 -5.56万 代码如下: 1234567891011121314151617181920/** * 阿拉伯数字(支持正负整数)四舍五入后转换成中文节权位简洁计数单位,例如 -5_5555 =》 -5.56万 * * @param amount 数字 * @return 中文 */public static String formatSimple(long amount) { if (amount < 1_0000 && amount > -1_0000) { return String.valueOf(amount); } String res; if (amount < 1_0000...
mysql数据库信息函数
我将仇恨写在冰上,然后期待太阳的升起。——加西亚马尔克斯 打开mysql官方文档:Information Functions 可以看到mysql查询库表信息的函数 Name Description BENCHMARK() Repeatedly execute an expression CHARSET() Return the character set of the argument COERCIBILITY() Return the collation coercibility value of the string argument COLLATION() Return the collation of the string argument CONNECTION_ID() Return the connection ID (thread ID) for the connection CURRENT_ROLE() Return the current active roles CURRENT_USER(), CURRENT_USER...
