图片占位符服务是 Web 应用程序开发人员的有用工具。它们唯一的目的是在设计或布局中标注未来图片的位置。在艺术家或摄影师在幕后准备图片时,可以绕过最终将被生产图片填充的空间。从快速应用程序开发的角度来看,图片占位符服务是开发者工具包的标准组成部分。
不幸的是,它们的普遍存在导致市场上充斥着太多的免费服务,不胜枚举。我个人最喜欢的是 Placehold.it,它提供简单的灰色图像,并在每张图像的中间用文字显示图像尺寸;以及 Placekitten,它显示任何尺寸的小猫图片。小猫在几乎任何语境下都很可爱,即使对于世界上不喜欢猫的冷酷灵魂——比如我这样的冷酷灵魂。
我着手构建一个图片占位符服务,主要是一个学术练习。我们在 Ashe Avenue 的工作通常以收入为中心,并且时间紧迫。任何我们有机会在业余时间构建工具的机会,无论是为了好玩还是仅仅因为,我们都会抓住。我一直认为构建一个图片占位符服务会很简单,但我很想知道其中的复杂之处,并且我有一些关于如何使其运行的问题:我应该即时生成图像还是预先生成?我应该缓存结果吗?我真的需要多少种不同类型的图像?最重要的是,我应该使用什么图像?
我做出了显而易见的选择:Vanilla Ice 和 90 年代初野马的照片!它太荒谬了,我知道它会引起注意,但这样做核心目的(提供简单的图像)不会被篡改或避免。开发者 John McKinney 和我有一天进行了一次头脑风暴会议,以决定我们应该给这项服务命名什么,NiceNiceJPG 这个名字突然出现在我的脑海中。我承认,我曾一度怀疑域名是否可用,但事后看来,我可能是杞人忧天了。这是一个荒谬的名字,但仍然很明显。幸运的是,它可用,我们注册了它。
NiceNiceJPG 只需要几个参数,具体取决于您想要返回的图像:如果您想明确指定,则需要宽度和高度,或者只需要一个表示正方形宽度和高度的数字。
示例
http://www.nicenicejpg.com/600/300 : 返回一张 600x300 的 Vanilla Ice 图片
http://www.nicenicejpg.com/450 : 返回一张 450x450 的 Vanilla Ice 图片
该应用程序本身是用 Rails 3 构建的,由于没有 UGC 或动态内容,因此没有数据库。有九种基本图像用途,范围从非常小的肖像到非常大的风景。图像使用 RMagick 根据请求的大小动态裁剪,并以二进制形式返回,内容类型为“image/jpeg”。
从一开始的计划就是使代码开源,因此我们在启动 NiceNiceJPG.com 的同一天发布了代码。通过开源代码,我们不仅使用户能够更改代码、添加新图像或添加缓存,而且还增强了我们自己构建非盈利工具的能力,这些工具服务于比仅仅赚钱更大的目标。该代码可在 GitHub 上使用、派生和扩展 在 GitHub 上。
评论已关闭。