drroach / dynamic-image
动态图像加载脚本,可实时生成指定大小的图像。
Requires (Dev)
This package is not auto-updated.
Last update: 2024-09-15 04:26:05 UTC
README
实时创建动态大小的图像,以便在添加或上传时无需调整大小。
此脚本的目的是允许图像实时生成到任何大小。这是通过使用PHP的imagick库在几秒钟内创建图像来实现的。
此脚本具有一个完全功能的基于文件的缓存系统,在原始图像更新时刷新。图像按比例生成,并生成高分辨率图像。还支持托管在单独端点上的图像。
支持JPG
、JPEG
、PNG
和GIF
图像。
参数
期望将参数作为key
、value
数组传递,并在创建对象时进行传递。
filename
- 必需
这是指定的原始图像文件名及其扩展名,例如,snorkel.jpg
。此图像可以是任何大小,并且将以接近完美的分辨率渲染。
width
- 必需
这是图像所需的宽度。
height
- 必需
这是图像所需的宽度。
image_directory
- 这是存放所有原始图像的目录。这不能通过文件系统向上移动,以保持整个脚本的总体安全性。这还必须以反斜杠结尾。
debug
- 如果您希望启用错误,则可以将此设置为true
以显示可能发生的任何错误。
image_missing
- 如果请求的图像未找到,则返回此图像。这意味着您永远不会得到空白响应,并且始终可以显示某些内容。
exceptions
- 参数用于设置是否希望脚本抛出异常。默认值为false
,因此如果您想抛出异常,则必须在创建对象时将此设置为true
。
validate_image
- 标志用于指示是否在检查图像是否存在缓存之前检查请求图像的存在。这意味着如果图像在保存到缓存后更新,则不会重新生成图像。默认设置为true
。
invalidate_cache
- 参数用于设置缓存图像在多少秒后无效。这意味着您可以将缓存图像每天重新生成,例如。
示例AJAX请求从单独的域加载图像
请求URL
http://yousite.com/loadimage.php?filename=snorkel.jpg&width=500&height=500
loadimage.php
<?php require_once 'DynamicImage.php'; $settings = [ 'filename' => $_GET['filename'], 'width' => $_GET['width'], 'height' => $_GET['height'] ]; $DI = new DynamicImage($settings); echo json_encode($DI->file); ?>
HTML
<img src="<?=$DI->file;?>">
如果您将图像保存在单独的文件夹中,例如/images
,则可以将动态图像设置为使用该文件夹,如下所示
<?php require_once 'DynamicImage.php'; $settings = [ 'filename' => $_GET['filename'], 'width' => $_GET['width'], 'height' => $_GET['height'], 'image_directory' => 'images/' ]; $DI = new DynamicImage($settings); echo json_encode($DI->file); ?>
潜在问题
请确保您的缓存文件夹可写,并且Apache用户有权在您的机器上写入。通常是用户www-data
。