动态背景图片 PHP GD
Posted
技术标签:
【中文标题】动态背景图片 PHP GD【英文标题】:Dynamic backgroundimages PHP GD 【发布时间】:2009-01-21 09:42:57 【问题描述】:问题 基本上,不可能以正确的方式使用带有背景图像的全尺寸照片。 不同的分辨率,宽屏等。我正在寻找的是针对这个问题的 JS/php GD 解决方案。
技术 据我所知,情况如下。 javascript 查找可用的屏幕尺寸(浏览器窗口)或屏幕分辨率。将其解析为 PHP GD。在 FTP 上,您将获得高分辨率图像(例如 1600x1200)。 PHP GD 根据 JS 解析的信息对其进行缩放。 这也必须对调整大小起作用。
由于我“只是”一个简单的设计师,我对 JS/PHP 的缺乏让我在这个问题上丧命。
如果有人可以帮助我找到合适的解决方案,我很乐意在完成后将它们与我的新网站上的朋友链接。在此先感谢荷兰的厚爱。
菲尔
【问题讨论】:
许多注意事项之一是 GD 可能会很慢,因此您应该设置一些缓存方法,以便当具有相似窗口大小的人获得已创建的图片时。 另一个问题是浏览器窗口的大小变化很大。示例是向位于标签栏上方的 Firefox 添加扩展。这样做只会将浏览器窗口缩小几个像素。 第三个问题是,由于 GD 的速度,使用 onResize 将永远无法正常工作。为缩小窗口的每个像素调整图片大小至少需要一秒钟。 【参考方案1】:基本上,不可能以正确的方式使用背景图像。
我知道这是您的意见,但网络上的其他人似乎不同意您的看法。他们让它发挥作用。但这可能不是这里的主要问题。
为每个用户调整背景大小,地狱,如果你不缓存,每个请求都会在一纳秒内摧毁你的服务器。 GD 调整大小很昂贵,如果这是在共享主机上,您最终会让您的网站启动它。如果同一服务器上还有其他网站,它们的爬行速度会很慢。
即使您可以将足够多的煤铲到服务器中,它也会带来非常不可靠的用户体验。浏览器不仅能够下载文件,还需要等待 PHP 生成图像,然后才能下载。
如果我将此网站加载到大屏幕上会怎样?我这里有一个可能的 ~3840*1200 分辨率。即使你不放大它,我也必须下载完整版。大屏幕尺寸并不意味着我的计算机上有多余的光纤。
但是,话虽如此,这当然是可能的。我建议你从 jQuery 开始。它使挂钩到 window -load 和 -resize 事件以及动态更改 CSS 变得非常简单。可以通过几个简单的谷歌来完成细节:“php resize image”、“jquery onresize”和“jquery change background”。
【讨论】:
【参考方案2】:您还可以制作多个 css 样式表来匹配某些分辨率。这个 UNTESTED 示例可能会给您一些帮助。
<html>
<head>
<title></title>
<link rel="stylesheet" id="styleSwitch" href="" />
<script type="text/javascript">
function getStyle()
var theStyleLink = document.getElementById('styleSwitch');
if (window.innerWidth < 810)
theStyleLink.setAttribute("href", "small-window.css");
else
theStyleLink.setAttribute("href", "large-window.css");
</script>
</head>
<body onload="getStyle();">
</body>
</html>
【讨论】:
【参考方案3】:你可以完全用 CSS 来做到这一点..
查看包含和封面:https://developer.mozilla.org/en-US/docs/Web/CSS/background-size
奖金:http://blog.geneticcoder.com/2015/12/09/rotate-and-cross-fade-background-images-with-jquery-css-background-opacity-trick/
【讨论】:
以上是关于动态背景图片 PHP GD的主要内容,如果未能解决你的问题,请参考以下文章