【问题标题】:Choosing file format for image editing in PHP在 PHP 中选择用于图像编辑的文件格式
【发布时间】:2013-09-17 23:48:47
【问题描述】:

我需要从文件中加载多张图像,将它们渲染成一张图像(将它们逐层绘制到彼此上),然后将结果以 JPEG 格式输出到浏览器。这应该尽可能有效地完成。图片大小约为 1366x720 像素。

我的问题是,文件的初始格式应该是什么?

如果我使用 JPEG,我需要 1.加载图片 2. 解码成原始数据 3. 将它们画在彼此身上 4.编码成JPEG输出

是否有不需要解码的格式?这会产生重大影响吗?

【问题讨论】:

  • 不,这不会有任何显着差异。使用 PHP 处理图像时最重要的是需要多少 RAM——这取决于图像像素大小,而不是它们的压缩方式。

标签: php image


【解决方案1】:

所有图像格式都需要解码,我猜你的问题是,有没有简单解码的格式?是的,PNM 格式系列中的便携式像素图格式 (ppm) 是最简单的图像格式之一。这是一个例子:

P3
# The P3 means colors are in ASCII, then 3 columns and 2 rows, 
# then 255 for max color, then RGB triplet 
3 2 
255 
255 0   0      0    255 0     0   0   255 
255 255 0      255 255 255    0   0   0

生成此图像:

但是,文件格式的简单性确实不应该成为问题,因为您确实应该使用图像库。在 PHP 中,gd 在大多数虚拟主机中都可用。

在任何情况下,无论您选择哪种文件格式,因为您将编辑图像,请远离 JPEG 等有损格式。有损格式的图像质量每次保存都会变差,因此不适合中间格式。不过,它们对于最终输出来说很好。对于中间格式,请选择无损格式,例如 PNG、BMP 或 PPM。

【讨论】:

  • 我更关心将文件读入内存的速度。我知道在将 JPEG(或任何格式)加载到内存中进行编辑后,它基本上只是一个位图。所以我想知道是否某些格式的加载/解码速度更快。
  • @OlavKokovkin:不知道图像和运行代码的平台,这是无法回答的。如果您关心效率,那么您只需要衡量它。二进制 PPM 格式 (P6 PPM) 可以比 ASCII PPM (P3 PPM) 更有效地解码。不过,压缩格式有时比未压缩格式更有效,因为要从磁盘读取的数据更少;使用像 RLE 这样的简单压缩可以充分减少必须从磁盘读取的数据量,同时几乎没有解码性能损失。你只需要测量。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-01-21
  • 1970-01-01
  • 2020-04-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多