Image processing 将用户贡献的图像处理和存储到网站的实践

Image processing 将用户贡献的图像处理和存储到网站的实践,image-processing,Image Processing,像许多人一样,我正在为一个网站处理上传的用户图像。现在我们只是将所有内容保存为静态文件,并让浏览器使用HTML调整大小,我知道这是次优的,因此我提出了问题。我想转到一个可能更好的过程,在这个过程中,提供的图像已经是正确的大小了 很明显,我想储存原稿,但我想知道处理其他尺寸的正确方法。大多数普通照片需要以2种缩略图格式以及更大的(比如小于800X600px)格式查看。有些照片可能需要以其他格式查看,但每张照片在上传时都会“知道”它需要什么格式。所以我的问题是我应该存储文件的所有版本(可能是3-4个

像许多人一样,我正在为一个网站处理上传的用户图像。现在我们只是将所有内容保存为静态文件,并让浏览器使用HTML调整大小,我知道这是次优的,因此我提出了问题。我想转到一个可能更好的过程,在这个过程中,提供的图像已经是正确的大小了

很明显,我想储存原稿,但我想知道处理其他尺寸的正确方法。大多数普通照片需要以2种缩略图格式以及更大的(比如小于800X600px)格式查看。有些照片可能需要以其他格式查看,但每张照片在上传时都会“知道”它需要什么格式。所以我的问题是我应该存储文件的所有版本(可能是3-4个)并允许我的静态文件服务器保持真正的静态,还是应该根据需要构建一个请求处理程序来重新调整原始映像的大小?(或其他选项)


我倾向于在节省时间的情况下生成图像,并在需要其他尺寸时编写回填脚本

您有两个选择,一个是您建议的(使用服务器端重新创建各种大小的图像,然后静态存储),另一个是您可以使用服务器端脚本从原始图像动态提供图像。你可以指定你的头来告诉浏览器强制缓存,这样你的服务器就不会一直提供动态缩放的图像了

选项1的优点:每次都是正确的图像

选项1的缺点:空间越大,文件越多

选项2的优点:节省空间,可以动态创建更多尺寸

选项2的缺点:处理能力更强,更依赖于浏览器(带宽优化效果较差)

就个人而言,我会选择静态路径,您可以使用良好的压缩/压缩技术优化文件大小,并且您清楚地知道您的用户正在接收正确的文件。
以Facebook、谷歌、苹果、CNN和维基百科如何存储图像为例。当需要对每个请求进行操作时,它们都不会动态输出图像。

此外,我在这里尽最大努力使这个问题尽可能普遍适用,以便“使internet和堆栈溢出更好”。我认为这个问题,或者某种形式的问题,是经常出现的事情,希望能有一些规范的b3st实践答案。如果你们中的任何人对即将结束的警察提出了令人发痒的问题,请编辑该问题,而不是投票结束。我知道这是一个很大的要求,因为你可能会以较少的满足感结束,但想想看。。。这是正确的做法。太棒了,一个有价值的答案出现了,看看这一点,在没有被提及的人考虑的情况下,进行一次接近投票,也许,编辑问题或发表评论,让我知道他们为什么认为这应该被关闭,以及如何改进问题。是的,这正是我所想的。您是如何确定这些站点不会动态生成它们的?我曾考虑查看url,但他们可能只是进行一些重写,我们甚至不知道背景中发生了什么。随着时间的推移,各种博客在谷歌和Facebook上告诉了我,开发者自己也通过twitter告诉了我。我看过苹果、CNN和维基百科上的一些静态内容,它们看起来都是普通图像(基于标题)和图像标题本身。大多数是动态创建的,但随后存储到CDN中。