图像和照片·浏览器图像和绘图编辑器
为什么在浏览器中编辑 12 兆像素的照片需要大约 48 MB
· 工作原理
图像编辑 画布 浏览器处理
3 MB JPEG 在解码时会变成数十兆字节,因为每个像素在内存中需要四个字节。这篇文章解释了算法,为什么浏览器工具受到设备内存而不是上传上限的限制,以及文件太大时该怎么办。
照片打开缓慢或根本打不开——浏览器编辑器在大型相机文件上停滞的问题
压缩的兆字节不能预测解码的编辑足迹。从打开缓慢或根本无法打开的照片开始:这是浏览器编辑器在大型相机文件上停滞的实际问题。对于此内存计算,实施的规则是 RGBA 快照估计每个像素使用 4 个字节,因此在工作副本之前,1200 万像素需要 48,000,000 字节用于一个位图。输入文件的上限为 40 MB,而解码尺寸独立限制为每边 8,192 个以及设备像素预算。
将宽度乘以高度四以获得一份 RGBA 副本,然后将源与打开后报告的缩小尺寸进行比较。默认预算为 33,177,600 像素,iOS 路径使用 16,777,216;超大来源会在发出通知后减少。工作画布和历史记录可以添加副本,因此这是一个基线,而不是总的选项卡内存承诺。
文件大小与解码大小 - 为什么压缩使文件变小但编辑器必须处理每个未压缩的像素
压缩兆字节不能预测解码的编辑足迹。将文件大小与解码大小分开:压缩使 JPEG 在磁盘上变小,但编辑器必须处理每个未压缩的像素。对于此内存计算,实施的规则是输入文件的上限为 40 MB,而解码的尺寸独立限制为每侧 8,192 和设备像素预算。默认预算为 33,177,600 像素,iOS 路径使用 16,777,216;超大来源会按比例减少,并发出通知。
将宽度乘以高度四以获得一份 RGBA 副本,然后将源与缩小后的尺寸进行比较。撤消最多保留 40 个步骤和大约 96 MiB,逐出最旧的条目,同时保持一个超大操作不可撤消。工作画布会添加副本,因此单位图图形只是基线。
每个像素四个字节:算术 — 宽度 × 高度 × RGBA 为 12 百万像素提供 48 MB,对于工作副本则提供更多
压缩兆字节不能预测解码的编辑足迹。关键算术是每个像素四个字节:宽度乘以高度,RGBA 在任何工作副本之前为 12 兆像素提供 48 MB。对于此内存计算,实现的规则是默认预算为 33,177,600 像素,iOS 路径使用 16,777,216;超大来源会按比例减少,并发出通知。撤消最多保留 40 个步骤和大约 96 MiB,逐出最旧的条目,同时保持一个超大操作不可撤消。
将宽度乘以高度四以获得一份 RGBA 副本,然后将源与减小的尺寸进行比较。 RGBA 快照估计每个像素使用 4 个字节,因此 1200 万像素在工作副本之前需要 48,000,000 字节。工作画布和历史记录会添加副本,因此单位图图形是基线。
限制来自哪里 - 浏览器画布尺寸上限、每个选项卡内存以及手机和桌面之间的差异
压缩兆字节不能预测解码的编辑足迹。限制来自几个地方:浏览器画布尺寸、每个选项卡内存以及手机和桌面之间的差异。对于此内存计算,实施的规则是撤消最多保留四十个步骤和大约 96 MiB,逐出最旧的条目,同时保持一个超大操作不可撤消。 RGBA 快照估计每个像素使用 4 个字节,因此在工作副本之前,一个位图需要 1200 万像素 48,000,000 字节。
将宽度乘以高度四以获得一份 RGBA 副本,然后将源与缩小后的尺寸进行比较。输入文件的上限为 40 MB,而解码尺寸则独立限制为每边 8,192 和设备像素预算。工作画布和历史记录会添加副本,因此单位图图形是基线。
实施的限制是像素和尺寸预算,而不是猜测的每个选项卡内存总量
压缩的兆字节不能预测解码的编辑足迹。本地模型意味着设备内存,而不是服务器端图像处理池,是实际的上限。对于此内存计算,实施的规则是 RGBA 快照估计每个像素使用 4 个字节,因此在工作副本之前,1200 万像素需要 48,000,000 字节用于一个位图。输入文件的上限为 40 MB,而解码尺寸独立限制为每边 8,192 个以及设备像素预算。
将宽度乘以高度四以获得一份 RGBA 副本,然后将源与缩小后的尺寸进行比较。默认预算为 33,177,600 像素,iOS 路径使用 16,777,216;超大来源会在发出通知后减少。工作画布和历史添加副本,因此这是基线。
即使没有发生图像上传,文件输入也具有 40 MB 验证上限
压缩的兆字节不能预测解码的编辑足迹。考虑一张 6000×4000 照片:一张完整的 RGBA 副本在设备安装、历史记录或其他画布之前占 96,000,000 字节。对于此内存计算,实施的规则是输入文件的上限为 40 MB,而解码的尺寸独立限制为每侧 8,192 和设备像素预算。默认预算为 33,177,600 像素,iOS 路径使用 16,777,216;超大来源会按比例减少,并发出通知。
将宽度乘以高度四以获得一份 RGBA 副本,然后将源与缩小后的尺寸进行比较。撤消最多保留 40 个步骤和大约 96 MiB,逐出最旧的条目,同时保持一个超大操作不可撤消。工作画布添加副本,因此这是基线。
工作示例:在设备安装之前,6000×4000 源需要每个 RGBA 副本 96,000,000 字节
压缩的兆字节不能预测解码的编辑足迹。这不包括每个浏览器的确切限制(版本之间会发生变化)或 RAW 和 HDR 格式的内存行为。对于此内存计算,实现的规则是默认预算为 33,177,600 像素,iOS 路径使用 16,777,216;超大来源会按比例减少,并发出通知。撤消最多保留 40 个步骤和大约 96 MiB,逐出最旧的条目,同时保持一个超大操作不可撤消。
将宽度乘以高度四以获得一份 RGBA 副本,然后将源与缩小后的尺寸进行比较。 RGBA 快照估计每个像素使用 4 个字节,因此 1200 万像素在工作副本之前需要 48,000,000 字节。工作画布和历史添加副本,因此这是基线。
要点:了解算术,然后进行编辑 — 浏览器图像和绘图编辑器如何在本地处理大文件以及设备运行不足时该怎么办
压缩兆字节不能预测解码的编辑足迹。要点是在编辑之前了解算法:浏览器图像和绘图编辑器可以在本地处理大型文件,但设备仍然可能运行不足。对于此内存计算,实施的规则是撤消最多保留四十个步骤和大约 96 MiB,逐出最旧的条目,同时保持一个超大操作不可撤消。 RGBA 快照估计每个像素使用 4 个字节,因此在工作副本之前,一个位图需要 1200 万像素 48,000,000 字节。
将宽度乘以高度四以获得一份 RGBA 副本,然后将源与减小的尺寸进行比较。输入文件的上限为 40 MB,而解码尺寸则独立限制为每边 8,192 和设备像素预算。工作画布和历史添加副本,因此这是基线。