今天看到了Photoshop1.0的源碼,有兩個想不到:
1. 竟然沒有用C語言,而是PASCAL。
2. 代碼中幾乎沒啥注釋。
![]()
僅有的一點兒注釋也都是匯編相關(guān)的,不過沒有注釋根本不是問題,因為代碼寫得太清晰易懂了,添加注釋反而會成為一種阻礙。
IBM Almaden 研究院的軟件工程首席科學(xué)家,也是UML創(chuàng)始人之一的Grady Booch曾經(jīng)研究過這個版本的代碼,他說:
Photoshop的架構(gòu)設(shè)計得非常精良,尤其是每種類型都抽象得如此出色,以至于帶來令人驚嘆的簡潔實現(xiàn)。
Photoshop 第一個版本中建立的基本結(jié)構(gòu)例如圖塊、濾鏡、虛擬內(nèi)存抽象在如今的Photoshop中依然存在,顯示了抽象的強(qiáng)大生命力。
Grady Booch 說:這就是我渴望編寫的代碼!
![]()
這樣的代碼是如何寫出來的呢?
今天我們來聊聊Photoshop的故事。
0 1
無心插柳
托馬斯和約翰是兄弟倆,小時候深受父親的影響,有兩個愛好:
1. 喜歡攝影,經(jīng)常到地下室的暗房去學(xué)習(xí)沖洗照片。
![]()
2. 計算機(jī)
兩人被父親帶回家的那個外形奇特的盒子而深深吸引,這是一臺Apple II Plus電腦。
![]()
很明顯,這兩個年少時的愛好決定了兩人未來的發(fā)展方向。
哥哥托馬斯高中畢業(yè)后進(jìn)入密歇根大學(xué),專業(yè)是計算機(jī)工程,這讓他接受了正規(guī)的計算機(jī)基礎(chǔ)知識的訓(xùn)練。
![]()
到了博士階段,托馬斯把注意力轉(zhuǎn)向了計算機(jī)視覺。
1987 年,他購買了一臺蘋果 Macintosh Plus 電腦,以便幫助他完成關(guān)于“數(shù)字圖像處理”的博士論文研究。
然而,令他失望的是,這臺 Mac 電腦無法顯示圖像中的灰度級。
為了解決這個問題,托馬斯不得不自己動手,編寫了一個程序來模擬灰度效果。
隨著研究的深入,類似的小程序越來越多,逐漸形成了一個工具集。
弟弟約翰從南加州大學(xué)畢業(yè)后,加入了喬治·盧卡斯建立的工業(yè)光魔,負(fù)責(zé)《星球大戰(zhàn)》《深淵》等電影的電腦特效。
![]()
![]()
有一年,弟弟約翰在休假是到密歇根大學(xué)探望哥哥托馬斯,發(fā)現(xiàn)了托馬斯編寫的這些圖形處理工具。
約翰在工業(yè)光魔時看過一次皮克斯做的圖形演示,其中有很多命令行驅(qū)動的Shell工具,和哥哥做的很像。
于是,兩人就一起合作,把這些小工具給整合起來,形成了一個叫做Display的軟件。
![]()
約翰拿著Display回到了工業(yè)光魔,在使用中他提出了更多的要求,比如:
把圖像保存成其他格式,這樣就可以通過別的程序打印了....
圖像在屏幕上看起來太暗了,能不能做一點兒伽馬校正......
這些來自好萊塢頂尖特效工作室的實際問題,一個個地被拋給了遠(yuǎn)在密歇根的托馬斯。
托馬斯現(xiàn)在面臨一個兩難的選擇:是繼續(xù)寫論文,還是和弟弟一起,繼續(xù)完善這個軟件?甚至商業(yè)化。
青少年時期就養(yǎng)成的興趣和愛好,讓他選擇了后者。
更重要的是,兄弟倆似乎發(fā)現(xiàn)了一個全新的機(jī)會:在個人電腦上進(jìn)行圖像編輯,這實在是太酷了。
托馬斯繼續(xù)改進(jìn)Display,幾個月后,托馬斯決定發(fā)布新的軟件:ImagePro。
但是這個名稱已被別人占有,托馬斯就想了一個新名稱:Photoshop。
![]()
至此,Photoshop正式登上歷史舞臺。
0 2
震撼Adobe
當(dāng)托馬斯繼續(xù)完善Photoshop的時候,弟弟約翰正在硅谷四處推銷。
讓人失望的是,硅谷的那幫家伙竟然不識貨,紛紛拒掉了Photoshop。
只有一家叫BarneyScan的公司愿意試試,可以和他們的掃描儀硬件一起捆綁銷售。
最終,Photoshop賣出了可憐的200份!
1988年9月,約翰來到Adobe公司繼續(xù)推銷,他精心準(zhǔn)備了一個演示,用Photoshop的魔法棒工具創(chuàng)建了一個帶有柔和邊緣的蒙版,這一下子就把Adobe創(chuàng)始人John Warnock以及藝術(shù)總監(jiān)Russell Brown給震住了。
因為其他的圖像處理軟件在創(chuàng)建選區(qū)的時候,只能用矩形/圓形工具圈選,或者用套索工具一點點手畫圈選,但是Photoshop的魔法棒具有智能選區(qū)的能力,圖片中有藍(lán)天,你點一下藍(lán)天,就可以自動選取整個天空。
而柔邊蒙版意味著可以像攝影暗房那樣做漸變處理,可以做柔焦、漸隱,光暈等專業(yè)效果。
![]()
換句話說,Phtoshop把攝影暗房的技術(shù)給數(shù)字化了,相比同時代的其他類似軟件,這是非常領(lǐng)先的技術(shù)。
但是由于Adobe的的核心產(chǎn)品和矢量圖形相關(guān)的, PostScript(打印語言)和 Illustrator(矢量繪圖軟件)才是主業(yè),商業(yè)和工程部門的人并不看好Photoshop這個處理像素的“玩具軟件”。
這時候Adobe的創(chuàng)始人和藝術(shù)總監(jiān)起了關(guān)鍵作用,他們決定先爭取一個短期的授權(quán)許可,先讓Phtoshop成為Illustrator輔助軟件,賣一段時間看看再說。
1990年2月,Adobe Phtoshop 1.0正式發(fā)布。
![]()
0 3
站在時代風(fēng)口
Photoshop是一個不折不扣的“硬件殺手”,因為它是基于像素的編輯方式,會把一幅圖片整體加載到內(nèi)存中。
例如一張A4大小、300DPI的RGB圖像,其未壓縮的數(shù)據(jù)量大約是:
(8.27英寸 * 300DPI) * (11.69英寸 * 300DPI) * 3個顏色通道 ≈ 2600萬像素
每個像素占用1字節(jié)(8位/通道),那么這張圖在內(nèi)存中就需要約 25MB 的空間。
如果在考慮到多個圖層,撤銷等操作,那消耗的內(nèi)存更嚇人了。
90年代內(nèi)存非常貴,PC能配個32M內(nèi)存就不錯了,Photoshop跑起來非常吃力,不得不把硬盤當(dāng)做虛擬內(nèi)存使用。
硬盤速度比內(nèi)存低幾個數(shù)量級,所以操作極其卡頓,聽到硬盤嘎吱嘎吱地瘋狂讀寫數(shù)據(jù),是每個90年代Photoshop用戶的集體回憶。
所以,Adobe公司最初對銷量也不看好,覺得每個月能賣個250份就不錯了。
但是,當(dāng)歷史的大潮來襲的時候,你擋都擋不住:
掃描儀市場開始發(fā)展,掃描質(zhì)量大幅提升,價格下降
彩色顯示器和彩色打印機(jī)普及
個人電腦因為摩爾定律越來越快越來越便宜。
Photoshop完美地站在了桌面出版、計算機(jī)成像、傳統(tǒng)攝影的交叉口,它用強(qiáng)大的圖像處理能力,迅速成了PC上的殺手級應(yīng)用。
很多人為了用上Photoshop,都會購買更高性能,更大內(nèi)存的電腦!
在接下來的10年里,Photoshop竟然賣了超過300萬份!把競爭對手遠(yuǎn)遠(yuǎn)拋在身后,成為圖像處理領(lǐng)域的絕對標(biāo)桿。
Adobe看到Photoshop如此流行,都超越了自己的主業(yè)PostScript和Illustrator,干脆花了3450萬美元買斷了它的所有權(quán),從此成了Adobe的旗艦產(chǎn)品。
哥哥托馬斯因為開發(fā)Photoshop而放棄了博士學(xué)習(xí),現(xiàn)在看是這個選擇是正確的,他打造了一個改變世界的軟件。
04
尾聲
Photoshop 1988年誕生,今年已經(jīng)37歲了。
這幾十年間,Photoshop已經(jīng)完全占領(lǐng)了用戶的心智,甚至從名詞變成了動詞,“ps一下”,這是大家對一個產(chǎn)品最大的褒獎。
但是,生成式AI的出現(xiàn),直接動搖了 Photoshop 賴以存在的底層邏輯。
Photoshop 過去的那些“獨(dú)門絕技”,正在悄悄變成所有人的日常能力。
37歲的Photoshop,也感受到了AI的壓力,正在用Generative Fill、Firefly 等能力重新定義自己,努力從一個修圖軟件,變成創(chuàng)意的加速器。
未來會怎么樣,我們并不知道,只能說:Photoshop 依然在,但它已經(jīng)不是過去那個Photoshop了。
源碼下載地址:
https://computerhistory.org/blog/adobe-photoshop-source-code/
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.