这两个大龄程序员,打算搞垮一个世界软件巨头!

大家都知道,Adobe是多媒体和数字内容创作者的绝对王者,它的旗下有众多大家耳熟能详的软件:Photoshop、Illustrator、Premiere Pro、After Effects、InDegign、Acrobat、Animate等等。

6f44f40e243ba3f816e0a4db33fdc010.jpeg

这些软件使用门槛很高,价格昂贵,安装繁琐,并且非常“吃”硬件配置。

有些程序员就不爽了,他们决定“揭竿而起”,给大家提供免费版的软件。

1

年入百万的网页版PS

Photopea是捷克小伙儿Ivan Kutskir(今年34岁了,按国内标准快要被裁了)开发了Photoshop的替代品,它的界面长得和Photoshop几乎一模一样。

不同的是,你不需要掏钱购买昂贵的软件,也不需要安装什么东西,只需要打开网站https://www.photopea.com/,就可以像Photoshop那样去处理图像。

2ec3131189821936261784aa581e54ed.png

由于无需注册,完全免费,Photopea受到了全世界的欢迎。

有流量就会有生意,Ivan Kutskir也通过广告等方式,早在2021年就年入百万美元。

8c75f489e47c12eeed53715a058414ad.png

更牛的是,在运营上Photopea几乎没有什么成本,一台普通的服务器就够了,因为代码都是下载到用户的浏览器中执行的。

它不需要后端,不需要支持高并发,不需要数据库。

所以单打独斗的Ivan Kutskir只需要专注开发就好,过得非常滋润。

2

网页版AE

看到Photopea,很多人就会想了,图象处理被搞定了,那么视频处理呢?

在Adobe的武器库中,有个大杀器叫AE(After Effects),可用于2D和3D合成、动画制作和视觉特效,通常用于影片制作、电视演播和视频游戏的后期处理工作。

32e2dd1e09bf4f79a32230cd0b77569b.png

能不能把AE也搬到浏览器中?

今年1月份,法国人Clément Cordier就萌发了这个念头。

349cf12f3be9151538678f2441b331bf.png

作为一名每天在 Linux 机器上工作的创意开发人员,他经常需要做一些视频合成、图层、关键帧、蒙版等操作,但是Adobe 的AE却无法在Linux上运行。

于是在业余时间,他开发了一个叫做Pikimov的软件,理念和Photopea非常像,无需注册、无需下载、完全免费,在浏览器中使用AE的替代品。

3e0a0efe47e0d86f4d0c393ba764a718.png

Pikimov尽可能地实现了AE的界面和使用体验:

基于图层的编辑系统

支持关键帧和动画功能

支持导入图像、视频、音频文件和GLB格式的3D模型

提供各种视频效果,色彩校正、模糊、蒙版

Pikimov还有一个响亮的口号:No AI ,就是说文件都保留用户的本地机器上,不用被厂商用来训练AI模型。

Pikimov非常小,只有5M,下载到浏览器中就可以运行了,完全不需要高速网络。

唯一可惜的是Pikimov现在只支持Chrome、Edge,不支持Firefox和Safari,因为它们缺乏一些Pikimov的Web API。

Pikimov用到了这些技术:

Threejs:2D/3D 组合渲染引擎

Emberjs:UI框架

WebGL GLSL:渲染视频效果

jQuery : 管理一些零零碎碎的东西

没有什么高大上的东西。语言、框架、类库都是工具,能做出什么样的产品,能发挥多大的威力,完全取决于使用工具的人。所以不要随随便便Dis这个Dis那个。

Clément Cordier是个什么样的高手?能用看起来普通的工具开发出这么复杂的Web程序?

其实他大学学的是数字艺术,2005年毕业于历史悠久的卡昂瑟堡艺术与媒体学院,获得硕士学位。

637d02430d4a7f76afba27b900c234e6.png

所以他的计算机编程知识,全部来自自学。

在LinkedIn上他的个人描述是“Web全栈程序员”,擅长JavaScript、HTML5、Three.js、Ember.js和PHP。

值得注意的是,在开发Pikimov之前,他已经创立了一个叫做XR+的工作室,自任CTO,开发AR/VR相关的产品,看起来更加惊艳:

但是销售也许并不好,要不然,他就不会Pikimov网站上找工作了:

6e92b21beace86c53a48504ede060939.png

如果Pikimov能快速发展起来,Clément Cordier也许就能像Photopea的Ivan Kutskir那样,光靠广告费就过得非常滋润了,根本不需要找工作了。

3

写在最后

网页版PS有了,AE有了,PR呢?Illustrator呢? Acrobat呢?

也许就在路上吧!

这是个艰难的路程,因为无论是网页版PS还是网页版AE,靠一个人单打独斗,工作量是极其吓人的。

如果不是真的热爱这个东西,并且也在这个领域有经验(PhotoPea是图像处理,Pikimov是视频处理),想做出网页版的XXX,是很难的,漫长的开发过程,根本坚持不下来。

不过世界很大,总会有某个地方的程序员突然冒头儿,带给我们惊喜。

希望再过几年,我能再写一篇文章:中国程序员实现了一个网页版的XXX,期待这一天早日到来。

全文完,觉得不错的话点个赞或者在看吧!

最后,欢迎大家到码农翻身公众号的“小密圈”逛逛,这是个和大家直接交流的地方,公众号没有发的东西,我也会放到这里,完全免费,欢迎加入!

993a123a985fd317602c61a536cd98fc.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/388648.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

遗传算法与深度学习实战——生命模拟及其应用

遗传算法与深度学习实战——生命模拟及其应用 0. 前言1. 康威生命游戏1.1 康威生命游戏的规则1.2 实现康威生命游戏1.3 空间生命和智能体模拟 2. 实现生命模拟3. 生命模拟应用小结系列链接 0. 前言 生命模拟是进化计算的一个特定子集,模拟了自然界中所观察到的自然…

大模型之多模态大模型技术

本文作为大模型综述第三篇,介绍语言大模型多模态技术。 不同于语言大模型只对文本进行处理,多模态大模型将文本、语音、图像、视频等多模态数据联合起来进行学习。多模态大模型融合了多种感知途径与表达形态, 能够同时处理和理解来自不同感知通道(例如视觉、听觉、语言和触…

麒麟系统查看和修改ip

查看ip ifconfig ifconfig enp0s3 192.168.1.110

使用Echarts来实现数据可视化

目录 一.什么是ECharts? 二.如何使用Springboot来从后端给Echarts返回响应的数据? eg:折线图: ①Controller层: ②service层: 一.什么是ECharts? ECharts是一款基于JavaScript的数据可视化图标库,提供直观&…

javaScript中的对象

创建 this指向 命名规则 不符合变量名的命名规则和规范使用数组关联语法获取 遍历对象 使用for(var key in 对象) 删除属性 对象引用关系

Flutter大型项目架构:私有组件包管理

随着项目功能模块越来越多,怎么去管理这些私有组件包是一个不得不面对的问题,特别对于团队开发来讲,一些通用的公共组件往往会在多个项目间使用,多的有几十个,每个组件包都有有自己的版本,组件包之间还有依…

一篇文章带你入门爬虫并编写自己的第一个爬虫程序

一、引言 目前我们处在一个信息快速迭代更新的时代,海量的数据以大爆炸的形式出现在网络之中,相比起过去那个通过广播无线电、书籍报刊等传统媒介获取信息的方式,我们现在通过网络使用搜索引擎几乎可以获得任何我们需要的信息资源。 但与此同…

Vue前端工程

创建一个工程化的vue项目 npm init vuelatest 全默认回车就好了 登录注册校验 //定义数据模型 const registerDataref({username:,password:,rePassword: }) //校验密码的函数 const checkRePassword(rule,value,callback)>{if (value){callback(new Error(请再次输入密…

python基础知识点

最近系统温习了一遍python基础语法,把自己不熟知的知识点罗列一遍,便于查阅~~ python教程 Python 基础教程 | 菜鸟教程 1、python标识符 以单下划线开头 _foo 的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用 f…

c++STL容器中vector的使用,模拟实现及迭代器使用注意事项和迭代器失效问题

目录 前言: 1.vector的介绍及使用 1.2 vector的使用 1.2 1 vector的定义 1.2 2 vector iterator(迭代器)的使用 1.2.3 vector 空间增长问题 1.2.4 vector 增删查改 1.2.5vector 迭代器失效问题。 2.vector模拟实现 2.1 std::vect…

大彩触摸屏与单片机通讯

目录: 一、概述 1、触摸屏简介 2、安装软件 1)设置VSPD软件 2)设置VisualTFT软件 3)设置串口软件 二、单片机发送指令给触摸屏 1、发送文本 2、显示与隐藏控件 1)通过指令助手生成指令 2)隐藏…

实现Obsidian PC端和手机端(安卓)同步

步骤 1:在PC端设置Obsidian 安装Obsidian和Git:确保你的PC上已经安装了Obsidian和Git。你可以从Obsidian官网和Git官网下载并安装。 克隆GitHub代码库:在PC上打开命令行(例如Windows的命令提示符或Mac/Linux的终端)&a…

Redis 初步认识

目录 1. 概述 2. 数据结构 3. 使用方式 4. 优势 1. 概述 Redis (Remote Directory Server)是一个开源的基于内存的数据存储系统; 可以用作数据库缓存和消息队列等各种场景,也是目前最热门的 NoSQL 数据库之一; 早…

LeetCode3. 无重复字符的最长子串(java实现)

今天分享的题目是LeetCode3. 无重复字符的最长子串,来看题目描述: 无重复的最长子串,题目有可能有些小伙伴没读太懂,其实就是找到不重复的最长子串,比如eg3,pwwk,那么w出现了两次就不符合要求。…

Spring源码- context:component-scan base-package标签的作用源码解析

1.扫描包路径下所有的类加载解析成bean定义信息 ClassPathBeanDefinitionScanner .doScan方法调用路径 doScan:276, ClassPathBeanDefinitionScanner (org.springframework.context.annotation) parse:95, ComponentScanBeanDefinitionParser (org.springframework.context.a…

C语言第九天笔记

数组的概念 什 么是数组 数组是 相同类型, 有序数据的集合。 数 组的特征 数组中的数据被称为数组的 元素,是同构的 数组中的元素存放在内存空间里 (char player_name[6]:申请在内存中开辟6块连续的基于char类 型的变量空间) 衍生概念&…

ClkLog:开源用户行为分析框架,让数据分析更轻松

ClkLog:开源用户行为分析框架,让数据分析更轻松 在数据驱动的时代,找到一个好用的用户行为分析工具真是难上加难。但是今天你有福了,开源免费的 ClkLog 就是你的不二选择!本文将为你详细介绍 ClkLog 的功能特点、技术架…

【初阶数据结构篇】冒泡排序和快速排序(中篇)

文章目录 冒泡排序和快速排序前言代码位置冒泡排序快速排序递归法实现hoare版本挖坑法lomuto前后指针递归法复杂度分析 非递归法实现 冒泡排序和快速排序 前言 本篇以排升序为例 代码位置 gitee 冒泡排序 动图理解 作为第一个接触的排序算法,冒泡排序想必大…

OpenCV 图像处理 轮廓检测基本原理

文章目录 基本原理关键函数和参数注意事项 示例代码示例效果代码详解findContours 函数原型findContours函数变体 基本原理 轮廓发现是图像处理中的一个重要步骤,用于检测物体的边界和形状。 图像预处理: 轮廓发现通常在灰度图像上进行。因此&#xff0…

程序员转型AI大模型好转吗?成功率高吗?

前言 在程序员圈子中,技术转型近年来一直是热门话题。随着AI技术的迅猛发展,优秀人才短缺,程序员向AI大模型转型似乎成为了一条通往职场先机的路径。但是,这条转型之路是否容易走,成功率又如何呢? 一、程…