处理图像并在页面加载时首先显示它


PHP Processing on an image and display it first on page load

我取了一张图片,对其进行了一些处理,使其成为深蓝色色调,并将其设置为页面主体中的背景图像。这里的代码完全按照预期工作:

 $image = imagecreatefromjpeg($backimage);
 imagefilter($image, IMG_FILTER_GRAYSCALE);
 imagefilter($image, IMG_FILTER_CONTRAST,40);
 imagefilter($image, IMG_FILTER_BRIGHTNESS,-80);
 imagefilter($image, IMG_FILTER_COLORIZE, 10, 0, 40);  //112, 66, 20);

问题是,它需要一些时间来处理,所以整个页面显示没有背景,然后在短暂的延迟后,背景图像出现(至少在firefox中),所以它看起来有点奇怪。实际上,我更喜欢先加载它,或者等到处理完成后再显示整个内容。任何建议吗?谢谢!

问题是,处理

需要一些时间

使用缓存。您不希望每次请求图像时都对其运行这些效果。将结果存储在静态JPG文件中(使用imagejpeg()的第二个参数),并在必要时更新。

关于如何做到这一点的更详细的建议(通常检查原始图像的"最后修改"时间是正确的方法;有时,手动触发它就足够了,你必须提供更多的上下文,关于你在做什么和你的图像来自哪里。