在PHP中选择图像编辑的文件格式

在PHP中选择图像编辑的文件格式,php,image,Php,Image,我需要从文件中加载几个图像,将它们渲染成一个图像(逐层将它们相互绘制),然后将结果以JPEG格式输出到浏览器。这应该尽可能有效地完成。图像大小约为1366x720像素 我的问题是,文件的初始格式应该是什么? 如果我使用JPEG,我需要 1.加载图像 2.解码成原始数据 3.把他们拉到一起 4.编码成JPEG并输出 有没有不需要解码的格式?这会有什么显著的区别吗?所有的图像格式都需要解码,我想你的问题是,有没有解码简单的格式?是的,来自PNM格式系列的便携式Pixmap格式(ppm)是最简单的图像

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

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

如果我使用JPEG,我需要 1.加载图像 2.解码成原始数据 3.把他们拉到一起 4.编码成JPEG并输出


有没有不需要解码的格式?这会有什么显著的区别吗?

所有的图像格式都需要解码,我想你的问题是,有没有解码简单的格式?是的,来自PNM格式系列的便携式Pixmap格式(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
这将生成此图像:

然而,文件fomat的简单性确实不应该成为问题,因为您确实应该使用图像库。在PHP中,gd在大多数web托管中都可用


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

所有图像格式都需要解码,我想你的问题是,有没有解码简单的格式?是的,来自PNM格式系列的便携式Pixmap格式(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
这将生成此图像:

然而,文件fomat的简单性确实不应该成为问题,因为您确实应该使用图像库。在PHP中,gd在大多数web托管中都可用


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

不,这不会造成任何显著差异。使用PHP处理图像时,最重要的是需要多少RAM,这取决于图像像素的大小,而不是它们可能被压缩的方式。不,这不会有任何显著的区别。使用PHP处理图像时,最重要的是需要多少RAM,这取决于图像像素的大小,而不是它们的压缩方式。我更关心的是将文件读入内存的速度。我知道JPEG(或任何格式)加载到内存中进行编辑后,它基本上只是一个位图。所以我想知道一些格式的加载/解码速度是否更快。@OlavKokovkin:如果不知道图像和运行代码的平台,这是不可能回答的。如果效率是你关心的问题,那么你只需要衡量它。二进制PPM格式(p6ppm)可以比ASCII PPM(p3ppm)更有效地解码。压缩格式有时比未压缩格式更有效,因为从磁盘读取的数据更少;使用简单的压缩(如RLE)可以充分减少必须从磁盘读取的数据量,同时几乎没有解码性能损失。你只需要测量一下。我更关心的是把文件读入内存的速度。我知道JPEG(或任何格式)加载到内存中进行编辑后,它基本上只是一个位图。所以我想知道一些格式的加载/解码速度是否更快。@OlavKokovkin:如果不知道图像和运行代码的平台,这是不可能回答的。如果效率是你关心的问题,那么你只需要衡量它。二进制PPM格式(p6ppm)可以比ASCII PPM(p3ppm)更有效地解码。压缩格式有时比未压缩格式更有效,因为从磁盘读取的数据更少;使用简单的压缩(如RLE)可以充分减少必须从磁盘读取的数据量,同时几乎没有解码性能损失。你只需要测量一下。