我需要在Ruby on Rails中获得图像的大小。图像位于远程URL中。我不想下载整个图像。
发布于 2012-10-19 21:35:26
如果不实际下载图像(如使用带宽),则很可能无法执行此操作。
也就是说,您可以使用FastImage gem为您完成此操作。
require 'fastimage'
FastImage.size("http://stephensykes.com/images/ss.com_x.gif")
=> [266, 56] # width, height发布于 2012-10-19 21:42:15
仅使用HTTP标头请求不会对您有所帮助
$ http -h get "http://cdn.sstatic.net/stackoverflow/img/sprites.png"
HTTP/1.1 200 OK
Cache-Control: max-age=604800
Connection: close
Content-Length: 16425
Content-Type: image/png
Date: Fri, 19 Oct 2012 13:39:15 GMT
ETag: "0d1523d7cadcd1:0"
Last-Modified: Thu, 18 Oct 2012 22:02:18 GMT
Server: NetDNA-cache/2.2因此,您需要一些HTTP响应正文。但是一些图像文件格式在顶部有标头来描述分辨率(尽管jpeg没有)。因此,也许您可以为该位发出部分HTTP请求(range请求)。
发布于 2012-10-19 21:37:51
"Validating or reading a remote image type in javascript“几乎涵盖了您需要了解的内容。它可能比你真正需要的要深一点,但它已经解释得很好了。
否则,您可以创建一个服务器端控制器来只执行一次此操作。你可以从任何地方读取图像和它们的尺寸。当用户获取图像时,尺寸将从您的服务器“缓存”中读取,而无需再次下载图像大小。如果关于该特定图像的信息不可用,您将获取它并存储尺寸和URL。这可以节省大量带宽。
https://stackoverflow.com/questions/12974917
复制相似问题