news 2026/6/26 9:39:07

拿到Photoshop的源码了,发现两个意想不到的秘密......

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
拿到Photoshop的源码了,发现两个意想不到的秘密......

今天看到了Photoshop1.0的源码,有两个想不到:

1. 竟然没有用C语言,而是PASCAL。

2. 代码中几乎没啥注释。

仅有的一点儿注释也都是汇编相关的,不过没有注释根本不是问题,因为代码写得太清晰易懂了,添加注释反而会成为一种阻碍。

IBM Almaden 研究院的软件工程首席科学家,也是UML创始人之一的Grady Booch曾经研究过这个版本的代码,他说:

Photoshop的架构设计得非常精良,尤其是每种类型都抽象得如此出色,以至于带来令人惊叹的简洁实现。

Photoshop 第一个版本中建立的基本结构例如图块、滤镜、虚拟内存抽象在如今的Photoshop中依然存在,显示了抽象的强大生命力。

Grady Booch 说:这就是我渴望编写的代码!

这样的代码是如何写出来的呢?

今天我们来聊聊Photoshop的故事。

01

无心插柳

托马斯和约翰是兄弟俩,小时候深受父亲的影响,有两个爱好:

1. 喜欢摄影,经常到地下室的暗房去学习冲洗照片。

2. 计算机

两人被父亲带回家的那个外形奇特的盒子而深深吸引,这是一台Apple II Plus电脑。

很明显,这两个年少时的爱好决定了两人未来的发展方向。

哥哥托马斯高中毕业后进入密歇根大学,专业是计算机工程,这让他接受了正规的计算机基础知识的训练。

到了博士阶段,托马斯把注意力转向了计算机视觉。

1987 年,他购买了一台苹果 Macintosh Plus 电脑,以便帮助他完成关于“数字图像处理”的博士论文研究。

然而,令他失望的是,这台 Mac 电脑无法显示图像中的灰度级。

为了解决这个问题,托马斯不得不自己动手,编写了一个程序来模拟灰度效果。

随着研究的深入,类似的小程序越来越多,逐渐形成了一个工具集。

弟弟约翰从南加州大学毕业后,加入了乔治·卢卡斯建立的工业光魔,负责《星球大战》《深渊》等电影的电脑特效。

有一年,弟弟约翰在休假是到密歇根大学探望哥哥托马斯,发现了托马斯编写的这些图形处理工具。

约翰在工业光魔时看过一次皮克斯做的图形演示,其中有很多命令行驱动的Shell工具,和哥哥做的很像。

于是,两人就一起合作,把这些小工具给整合起来,形成了一个叫做Display的软件。

约翰拿着Display回到了工业光魔,在使用中他提出了更多的要求,比如:

把图像保存成其他格式,这样就可以通过别的程序打印了....

图像在屏幕上看起来太暗了,能不能做一点儿伽马校正......

这些来自好莱坞顶尖特效工作室的实际问题,一个个地被抛给了远在密歇根的托马斯。

托马斯现在面临一个两难的选择:是继续写论文,还是和弟弟一起,继续完善这个软件?甚至商业化。

青少年时期就养成的兴趣和爱好,让他选择了后者。

更重要的是,兄弟俩似乎发现了一个全新的机会:在个人电脑上进行图像编辑,这实在是太酷了。

托马斯继续改进Display,几个月后,托马斯决定发布新的软件:ImagePro。

但是这个名称已被别人占有,托马斯就想了一个新名称:Photoshop。

至此,Photoshop正式登上历史舞台。

02

震撼Adobe

当托马斯继续完善Photoshop的时候,弟弟约翰正在硅谷四处推销。

让人失望的是,硅谷的那帮家伙竟然不识货,纷纷拒掉了Photoshop。

只有一家叫BarneyScan的公司愿意试试,可以和他们的扫描仪硬件一起捆绑销售。

最终,Photoshop卖出了可怜的200份!

1988年9月,约翰来到Adobe公司继续推销,他精心准备了一个演示,用Photoshop的魔法棒工具创建了一个带有柔和边缘的蒙版,这一下子就把Adobe创始人John Warnock以及艺术总监Russell Brown给震住了。

因为其他的图像处理软件在创建选区的时候,只能用矩形/圆形工具圈选,或者用套索工具一点点手画圈选,但是Photoshop的魔法棒具有智能选区的能力,图片中有蓝天,你点一下蓝天,就可以自动选取整个天空。

而柔边蒙版意味着可以像摄影暗房那样做渐变处理,可以做柔焦、渐隐,光晕等专业效果。

换句话说,Phtoshop把摄影暗房的技术给数字化了,相比同时代的其他类似软件,这是非常领先的技术。

但是由于Adobe的的核心产品和矢量图形相关的, PostScript(打印语言)和 Illustrator(矢量绘图软件)才是主业,商业和工程部门的人并不看好Photoshop这个处理像素的“玩具软件”。

这时候Adobe的创始人和艺术总监起了关键作用,他们决定先争取一个短期的授权许可,先让Phtoshop成为Illustrator辅助软件,卖一段时间看看再说。

1990年2月,Adobe Phtoshop 1.0正式发布。

03

站在时代风口

Photoshop是一个不折不扣的“硬件杀手”,因为它是基于像素的编辑方式,会把一幅图片整体加载到内存中。

例如一张A4大小、300DPI的RGB图像,其未压缩的数据量大约是:

(8.27英寸 * 300DPI) * (11.69英寸 * 300DPI) * 3个颜色通道 ≈ 2600万像素

每个像素占用1字节(8位/通道),那么这张图在内存中就需要约 25MB 的空间。

如果在考虑到多个图层,撤销等操作,那消耗的内存更吓人了。

90年代内存非常贵,PC能配个32M内存就不错了,Photoshop跑起来非常吃力,不得不把硬盘当做虚拟内存使用。

硬盘速度比内存低几个数量级,所以操作极其卡顿,听到硬盘嘎吱嘎吱地疯狂读写数据,是每个90年代Photoshop用户的集体回忆。

所以,Adobe公司最初对销量也不看好,觉得每个月能卖个250份就不错了。

但是,当历史的大潮来袭的时候,你挡都挡不住:

  • 扫描仪市场开始发展,扫描质量大幅提升,价格下降

  • 彩色显示器和彩色打印机普及

  • 个人电脑因为摩尔定律越来越快越来越便宜。

Photoshop完美地站在了桌面出版、计算机成像、传统摄影的交叉口,它用强大的图像处理能力,迅速成了PC上的杀手级应用。

很多人为了用上Photoshop,都会购买更高性能,更大内存的电脑!

在接下来的10年里,Photoshop竟然卖了超过300万份!把竞争对手远远抛在身后,成为图像处理领域的绝对标杆。

Adobe看到Photoshop如此流行,都超越了自己的主业PostScript和Illustrator,干脆花了3450万美元买断了它的所有权,从此成了Adobe的旗舰产品。

哥哥托马斯因为开发Photoshop而放弃了博士学习,现在看是这个选择是正确的,他打造了一个改变世界的软件。

04

尾声

Photoshop 1988年诞生,今年已经37岁了。

这几十年间,Photoshop已经完全占领了用户的心智,甚至从名词变成了动词,“ps一下”,这是大家对一个产品最大的褒奖。

但是,生成式AI的出现,直接动摇了 Photoshop 赖以存在的底层逻辑。

Photoshop 过去的那些“独门绝技”,正在悄悄变成所有人的日常能力。

37岁的Photoshop,也感受到了AI的压力,正在用Generative Fill、Firefly 等能力重新定义自己,努力从一个修图软件,变成创意的加速器。

未来会怎么样,我们并不知道,只能说:Photoshop 依然在,但它已经不是过去那个Photoshop了。

源码下载地址:

https://computerhistory.org/blog/adobe-photoshop-source-code/

本文作者刘欣,著有畅销书《码农翻身》,《半小时漫画计算机》,前IBM架构师,领导过多个企业应用架构设计和开发工作;洞察技术本质,擅长用故事去讲解复杂技术。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/24 14:28:58

效率翻倍!盘点 15 款我离不开的“神仙软件”,不仅有 AI 神器

有粉丝问我: 你录动图软件用的是啥? 你录视频用啥软件啊? 你的视频剪辑用的什么软件? 你平时写作用啥软件? 我今天盘点一下我日常比较常用的、非常好用的几款软件。 截图 Xnip 传送门:https://zh.x…

作者头像 李华
网站建设 2026/6/25 23:06:38

半导体行业正迈入前所未有的“千兆周期”

本文由半导体产业纵横(ID:ICVIEWS)编译自tomshardware行业分析认为,人工智能时代正在同时重塑芯片市场的各个方面。人工智能的浪潮正以前所未有的深度和广度重塑全球半导体产业。来自行业巨头与研究机构的一致预测表明&#xff0c…

作者头像 李华
网站建设 2026/6/26 7:39:01

八股文学习日常(虚拟机篇)

1.介绍JVM的内存模型JVM的内存模型共分为五大部分,虚拟机栈,方法栈,堆,元空间和程序计数器:1)程序计数器:可看作当前线程执行字节码的行号显示器。用于存储当前线程执行方法的JVM指令地址。当执…

作者头像 李华
网站建设 2026/6/24 7:56:26

EmotiVoice能否生成双语混合语音?中英文夹杂合成实测

EmotiVoice能否生成双语混合语音?中英文夹杂合成实测 在智能语音助手、虚拟偶像和国际化内容创作日益普及的今天,用户早已不满足于“能说话”的TTS系统。他们期待的是更自然、更具表现力的声音——比如在一句中文里流畅插入“Zoom会议”、“deadline”或…

作者头像 李华
网站建设 2026/6/26 3:19:50

EmotiVoice语音合成系统灰度回滚机制设计要点

EmotiVoice语音合成系统灰度回滚机制设计要点 在智能语音助手、虚拟主播和有声内容平台日益普及的今天,用户早已不再满足于“能说话”的机器语音。他们期待的是富有情感、贴近真人表达的声音体验。EmotiVoice 正是在这一背景下脱颖而出的开源TTS引擎——它不仅支持多…

作者头像 李华
网站建设 2026/6/26 7:49:23

psycopg2-binary 全面教程:常用 API 串联与实战指南

大家好,我是jobleap.cn的小九。 psycopg2-binary 是 Python 连接 PostgreSQL 数据库的核心库(psycopg2 的预编译二进制版本,无需编译依赖,开箱即用),本文将从环境准备、核心 API 讲解到实战案例&#xff0c…

作者头像 李华