我正在使用 Amazon EC2 + s3 编写一个简单的图像上传函数,其中包含 php + 图像魔术。
该功能基本上接收图像,可能进行压缩,并将其调整为3~4种不同的大小,并且图像的访问频率高于上传频率。
不是数字图像专家,我仍在决定是将上传的图像转换为 jpeg 还是保留其原始格式(jpeg、png、gif - 如果格式被转换,gif 将被转换为静止图像)。
我能想到两件事需要考虑。
- 计算能力使用情况(最好不要转换)
- 网络带宽(最好转换)
有什么建议吗?
根据我的经验,您希望保留原始图像。如果您决定重新设计网站并全局更改图像格式,则以后可能需要它。如果您不保留原件,则在这种情况下将无法重新处理它们。
Re. 计算能力的使用 - 你不应该担心这一点。您只需调整一次大小,然后优化的图像大小会在以后每次加载图像时补偿 CPU 和带宽。
更改用户上传的图像格式通常不是一个好主意。某些格式有其自身的特点和优点,更改格式可能并不理想。例如,png 比 gif 或 jpeg 更好地支持透明度。因此,转换可能会导致您的图像看起来很奇怪。
PNG 和 GIF 更擅长压缩某些类型的图像,基本上是块状图形,而 JPEG 更适合类似照片的图像。 因此,根据您上传的图像类型,在节省带宽/存储空间方面可能没有好处。
要转换的计算将很昂贵,如果您不异步进行,它会减慢您的 Web 服务器的速度。
如果您对图像的使用可以接受任何一种类型(jpg,png,gif),那么我建议将它们保留为接收的格式。