通过WebAssembly + Emscripten、Web Components + Lit、Service Workers + Workbox以及对新的Web API的支持,Chrome和Adobe之间的合作使得将Photoshop桌面应用程序引入Web成为了一项重大的里程碑。现在,您可以在浏览器上使用高度复杂和图形密集的软件,只需访问photoshop.adobe.com(注:目前不支持国内用户)。这一成就得益于Adobe工程师多年来的不懈努力,以及与Chrome等浏览器供应商紧密合作,共同推动了Web技术的发展。
愿景:在浏览器中使用Photoshop
多年来,Photoshop一直是图像编辑和平面设计的顶级工具,为创意工作者在Windows和macOS上提供了无限的创作可能性。然而,如今我们有机会让它摆脱桌面的束缚,打开崭新的大门。
在互联网的帮助下,我们可以实现随时随地、轻松编辑和协作的愿景。用户只需打开浏览器,就可以立即开始编辑,不再需要繁琐的软件安装。而且,他们可以在不同的设备之间毫不费力地切换。
连接性是关键,它让我们能够分享工作流程。现在,Photoshop文档可以通过简单的URL链接进行访问,而不再埋藏在复杂的文件系统中。这使创作者可以轻松地与合作者共享他们的作品。
最令人兴奋的是,这种新方式也跨越了平台的边界。通过网络运行,我们可以让Photoshop适应多种操作系统,让更多的用户能够轻松访问它。
然而,要实现这一愿景,我们需要克服重大的技术挑战,重新思考如何让像Photoshop这样强大的应用程序在互联网上运行。
但是实现这一愿景面临着重大的技术挑战,需要重新思考像Photoshop这样强大的应用程序如何在网络上运行。
新的Web功能释放了Photoshop的潜力
近年来,出现了一些能够通过标准化和实施来实现类似于Photoshop的应用程序的Web平台功能。Adobe工程师创新地充分利用了几个关键的下一代API:
高性能本地文件访问与源私有文件系统(OPFS技术)
在Photoshop中,我们经常需要读写可能非常大的PSD文件。这要求对本地文件系统进行高效的访问。新的Origin私有文件系统API(OPFS)为我们提供了一个快速的、特定于Origin的虚拟文件系统,使我们能够更轻松地处理这些文件。
const opfsRoot = await navigator.storage.getDirectory();
OPFS 可以快速创建、读取、写入和删除文件。例如:
// Create file
const file = await opfsRoot.getFileHandle('image.psd', {create: true});
// Get read/write handle
const handle = await file.createSyncAccessHandle();
// Write contents
handle.write(buffer);
// Read con