如何在通过浏览器下载之前将图像裁剪为客户端分辨率

时间:2011-08-24 15:54:18

标签: php background server-side crop

我通常会尝试自己寻找解决方案,但是对于这个特殊情况,我不知道要搜索什么来实现我的目标。

好吧,所以这就是:我正在尝试找到一个服务器端脚本(最好是在PHP中),它将图像(背景)剪切到客户端的屏幕分辨率,然后再由浏览器下载。

我的目标是浏览器不必下载不适合其屏幕的图像部分。

理想情况下,如果它可以使用中心顶部作为原点进行裁剪,那将是完美的。

我不是很喜欢这样的东西,但我不知道如何自己编码,就像我说的那样,我不知道该搜索什么。

如果你能提供帮助,非常感谢。

1 个答案:

答案 0 :(得分:0)

你不能一步到位。浏览器/窗口大小数据在标准HTTP请求中不可用。必须使用一些Javascript检索它并发送到服务器。这意味着用户必须先从您的网站加载页面,然后才能了解有关浏览器的任何信息。脚本可以动态重写页面中的所有图像标记,以将窗口规范作为图像URL e.g. src="resizer.php?id=logo.jpg&x=1024&y=768"的一部分包含在内。

但是,请记住仅仅是浏览器大小并不能很好地确定显示环境。用户可以调整窗口大小/最大化,现在他们在背景边缘有空白区域,因为它仅调整为原始窗口/桌面大小。他们可以放大/缩小页面,这也会使实际的像素大小无效等等......

不要担心屏幕外图像部分,而是尝试通过使用压缩级别简单地将背景的文件大小减小到尽可能小。找到一个压缩级别,使背景具有漂亮的图像质量,但也尽可能小的文件大小。