在浏览器中编辑图像
该编辑器的工作原理、为什么它将所有内容保留在您的设备上,以及浏览器可以和不能对图像执行哪些操作。
一切都发生在您的设备上
大多数在线图像编辑器会将您的图片上传到服务器,在那里进行处理,然后发回结果。这意味着您的图像副本位于其他人的计算机上,并受他们的保留政策和安全性的约束。
这个编辑器不是这样工作的。您的浏览器已经包含完整的图像管道:它可以解码 JPEG、向您提供像素、让您在它们上绘图并编码新文件。该工具是该管道上的用户界面。图像从磁盘读入内存,在内存中编辑,然后写回磁盘。
实际结果是,该工具一旦加载就可以离线工作,没有超出设备内存的上传限制,并且不会泄漏您的图像,因为它从不传输图像。我们的测试套件包括检查是否没有源文件包含网络调用,因此声明是强制执行的,而不仅仅是断言的。
起始:空白画布或现有图像
选择空白画布的宽度和高度,或从您的设备打开 PNG、JPEG 或 WebP。打开图像会替换当前文档,因此请先导出要保留的所有内容。
非常大的图像会自动缩小,并且该工具会在缩小后告诉您。这不是任意的限制。一张 50 百万像素的照片需要大约 200 MB 作为画布中的原始像素,而输出的第二个副本则将其加倍。在手机上,超过限制不会引发可捕获的错误:浏览器交回空白画布,或者操作系统终止该选项卡。首先缩小图像是工作编辑器和崩溃之间的区别。
绘图,以及为什么触摸在这里可以正常工作
画笔、橡皮擦、线条、矩形、椭圆和文本工具与鼠标、触控板、手指或手写笔的工作方式相同,因为编辑器侦听统一的指针事件,而不是单独的鼠标和触摸处理程序。
一个细节使触摸绘图变得可用而不是令人沮丧:画布声明它可以处理自己的手势,因此在其上拖动的手指可以进行绘图,而不是滚动页面。忽略这一点的编辑器在手机上几乎无法使用,因为每笔画都会与浏览器争夺控制权。页面仍然在画布外的任何地方正常滚动。
指针事件的到达频率也低于屏幕刷新的频率,因此快速笔画被报告为少数间隔较远的点。编辑器会填补它们之间的空白,这就是为什么快速的线条会显示为实心而不是一排点。
撤消及其消耗的内存
每一个笔触、形状和变换都是一个撤消步骤。从工具栏或使用常用的键盘快捷键撤消和重做工作。
历史是有目的的。每个步骤都会保留其更改的像素的副本,并且在每个步骤数十兆字节的大图像上。无限制的历史记录是耗尽手机内存的最快方法之一,因此该编辑器通过步骤数和总大小来限制历史记录,首先丢弃最旧的。状态行显示当前保留的数量。
这是一次深思熟虑的交易:以浅薄的历史来换取不会在会话中途死亡的编辑。
层数,刻意保持较小
图层可让您将注释与下面的照片分开,这样您就可以调整或删除它,而无需接触原始像素。您可以添加、选择、按位置重命名、重新排序、隐藏、设置不透明度、向下合并和展平。
这里是一个小的栅格图层模型,它故意停在那里。混合模式、图层蒙版、组、调整图层和非破坏性变换未实现。这些功能是草图工具与专业合成器的区别,而它们的半工作版本比它们的诚实缺失更糟糕。限制页面准确列出了缺少的内容。
每个图层都包含一个全尺寸位图,因此图层消耗的内存与其数量成正比。上限是十二。
出口
PNG 是无损的并保持透明度:绘图、图表和屏幕截图的正确选择。 JPEG 对于照片来说要小得多,但无法存储透明度,并且每次保存时都会损失一点质量。 WebP 可以很好地完成这两项工作,并且在同等质量下生成的文件比 JPEG 更小。
如果您的图像具有透明区域并且您选择 JPEG,则编辑器会在保存之前向您发出警告,并用白色填充透明度,而不是让浏览器选择颜色(有时是黑色)。
导出的文件在页面中生成并直接保存到您的下载文件夹中。
问题
编辑器可以离线工作吗?
是的,页面加载后。没有什么可联系的,因此在初始加载后,互联网连接与它无关。
为什么我的照片打开后变小了?
因为它超出了浏览器画布可以在您的设备上可靠保存的范围。另一种选择是空白画布或崩溃的选项卡,因此编辑器会缩小图像并告诉您它使用的尺寸。
明天我可以从上次中断的地方继续编辑吗?
不会。不会保存任何内容,因为保存图像就意味着将其存储在某个地方。在关闭选项卡之前导出。
局限性
- 图层仅是栅格:没有混合模式、蒙版、组、调整图层或非破坏性变换。
- 大图像会缩小以适应设备的画布限制,因此编辑器不适合对非常大的照片进行全分辨率工作。
- 撤消历史记录受大小和步数限制,因此长时间会话不会保留每一步。
- 会话之间不会保存任何内容。关闭选项卡将放弃该文档。
- 不支持 RAW、HEIC、TIFF、GIF 或 SVG:编辑器仅处理 PNG、JPEG 和 WebP。
- 没有色彩管理。图像在浏览器的默认色彩空间中处理,因此可能不会保留嵌入的 ICC 配置文件。