fabric photo
发表于|更新于
|浏览量:
这是一个流行离开的世界,但是我们都不擅长告别。——《生活在别处》
今天分享一个fabric photo,它是一个基于 canvas 的纯前端的图片编辑器,支持方形,圆形,箭头,缩放,拖拽,鹰眼,马赛克,涂鸦,线条,导出 png,剪切等
github地址:https://github.com/ximing/fabric-photo
在线体验Demo:https://ximing.github.io/fabric-photo/

找了很多个,这个应该是很好用的了
并且协议为MIT,支持商用
相关推荐
2021-09-12
js window.open
懒惰——它是一种对待劳动态度的特殊作风。它以难以卷入工作而易于离开工作为其特点。 —— 杰普莉茨卡娅 有时我们需要在js中触发打开新标签页、或者是在当前页面跳转以及在iframe中替换父页面 使用window.open即可,关于它的参数,为以下四个: URL:需要打开的页面URL 1window.open("https://VampireAchao.github.io/") name:打开页面的方式或名称 12345678// 新窗口打开,默认window.open("https://VampireAchao.github.io/","_blank")// 父窗口打开,ifame中使用window.open("https://VampireAchao.github.io/","_parent")// 当前窗口中打开window.open("https://VampireAchao.github.io/","_self")// 顶层窗口...
2020-12-02
js进行深拷贝
共夸不受污泥染,没有污泥哪有莲。——《赏荷》 对象深拷贝 123456789101112131415161718192021222324252627282930export function deepClone (data) { var type = getObjType(data) var obj if (type === 'array') { obj = [] } else if (type === 'object') { obj = {} } else { // 不再具有下一层次 return data } if (type === 'array') { for (var i = 0, len = data.length; i < len; i++) { data[i] = (function () { if (data...
2022-03-05
Generator函数自动执行器
有的东西被遗忘,有的东西销声匿迹,有的东西死了,而其中几乎不含有悲剧性因素。——《寻羊冒险记》 今天用typescript写了个Generator函数自动执行器: 1234567891011export function runGenAuto(fn: Function) { let gen: Generator<Function> = fn() function next() { let result = gen.next() if (result.done) { return result.value } return result.value(next) } return next();} 为了测试效果,我们定义一个Generator函数,这个函数用于将URLSearchParams转换成一般对象 当然直接遍历不用generator也能实现上述需求,但这里主要是为了测上方的自动执行Generator...
2021-04-13
学习uni-app官方教程
生命是一条奔流不息的河,我们都是那个过河的人。——席慕蓉 官网 我们直接实战 创建两个项目 从hello-uniapp中复制common文件夹以及static下面的uni.ttf文件到news项目同目录下 然后是复制App.vue中的样式库 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091<script> export default { onLaunch: function() { console.log('App Launch') }, onShow: function() { console.log('App Show') }, onHide: fun...
2026-10-02
effect
少年易学老难成,一寸光阴不可轻。——朱熹 Effect:为 TypeScript 生产应用准备的一套可靠性语言项目地址:https://github.com/Effect-TS/effect TypeScript 的世界里,写出能运行的代码并不总是最难的部分。 真正棘手的,往往是代码开始面对现实之后。 网络请求会失败,依赖会缺失,数据库会暂时不可用,异步任务会交错执行,配置会变化,日志与追踪需要被补上,测试环境与生产环境又有着不同的要求。代码规模一旦增长,这些问题不会单独到来,而会彼此纠缠,慢慢变成项目长期维护中的重量。 Effect 想处理的,就是这部分重量。 它是一个用于构建健壮、可维护、类型安全且面向生产环境 TypeScript 应用的库。它关注的不是让代码看起来更抽象,而是帮助开发者在规模化开发中处理类型化错误、依赖注入、并发、缓存、资源管理、可观测性以及流式数据等复杂问题。 Effect 的方向很明确:让生产级应用中的不确定性,不再只能依赖约定、注释和经验来维持。 当应用开始复杂,问题才真正出现一个简单的函数可以接收输入,返回输出。 但一个真实服务通常需要做得更多...
2022-07-14
vue-class-component
人的教养不能够靠别人传授,人必须进行自我修养。一切苦修也绝不是文化修养,教育是通过人的主动性来实现的,教育牢牢地钉在主动性上。——费希特 官方文档:https://class-component.vuejs.org/ class-component是vue官方库之一,其可以让你使用class的方式定义、编写组件 再加上ts的装饰器,最终效果如下: 12345678910111213141516171819202122232425262728<template> <div> <button v-on:click="decrement">-</button> {{ count }} <button v-on:click="increment">+</button> </div></template><script>import Vue from 'vue'...

阿超
我的名字叫阿超 年龄25岁 家在北京市 职业是软件开发 每天最晚也会在八点前回家 不抽烟 酒浅尝辄止 晚上十二点上床 保证睡足八个小时 睡前写一篇博客 再做二十分钟俯卧撑暖身 然后再睡觉 基本能熟睡到天亮 像婴儿一样不留下任何疲劳和压力 就这样迎来第二天的早晨 健康检查结果也显示我很正常 我想说明我是一个不论何时都追求内心平稳的人 不拘泥于胜负 不纠结于烦恼 不树立使我夜不能寐的敌人 这就是我在这社会的生活态度
Follow Me公告
This is my Blog