wendrowycz / skoch-filter-file-resize
Zend Framework 的图像缩放实用工具
Requires
- php: >=5.3.0
- zendframework/zendframework1: ~1
This package is auto-updated.
Last update: 2023-07-06 21:38:22 UTC
README
Zend Framework 的图像缩放实用工具
Skoch_Filter_File_Resize 是一个实用工具,用于将图像缩放集成到 Zend Framework 的 Zend_Form 结构中。它实现为一个过滤器,可以附加到 Zend_Form_Element_File 实例。
安装
- 从 github 下载 library/Skoch 文件夹并将其添加到您的库文件中
- 将
autoloaderNamespaces[] = "Skoch_"添加到您的application.ini
示例
application 和 public 文件夹包含一些基本用法的示例。最有趣的文件是 application/forms/Image.php。您需要安装 Zend-Framework 才能运行示例。
基本用法
您可以将过滤器添加到您的 Zend_Form_Element_File 实例。
$photo->addFilter(new Skoch_Filter_File_Resize(array( 'width' => 200, 'height' => 300, 'keepRatio' => true, )));
这将使图像缩放至最大长度 200px 和最大高度 300px。其中一边可能会略小,因为我们设置了 keepRatio 为 true,这意味着应保持宽高比(例如 3:4)。还有一个隐式定义的 keepSmaller 设置为 true,这意味着如果图像已经小于给定的大小,则不会进行缩放(因为这会导致很多奇怪的像素)。
多个缩略图
通常您希望创建不同大小的多个缩略图。这可以通过使用所谓的 过滤器链 和 Skoch_Filter_File_Resize 的 目录 选项来完成。
如果您指定了 目录,则不再考虑 setDestination() 的值。因此,您必须将完整路径传递给 目录 选项。
$filterChain = new Zend_Filter(); // Create one big image with at most 600x300 pixel $filterChain->appendFilter(new Skoch_Filter_File_Resize(array( 'width' => 600, 'height' => 300, 'keepRatio' => true, ))); // Create a medium image with at most 500x200 pixels $filterChain->appendFilter(new Skoch_Filter_File_Resize(array( 'directory' => '/var/www/skoch/upload/medium', 'width' => 500, 'height' => 200, 'keepRatio' => true, ))); // Rename the file, of course this should not be a fixed string in real applications $multiResize->addFilter('Rename', 'users_upload'); // Add the filter chain with both resize rules $multiResize->addFilter($filterChain);
这将创建两个缩略图,一个最大长度 600px 和高度 300px,另一个长度 500px 和高度 200px。在每种情况下,都将保持宽高比。较小的缩略图将保存到 /var/www/skoch/upload/medium 文件夹中,而较大的缩略图将使用通过 Zend 的 setDestination() 方法设置的默认选项。
选项 / 参数
您可以指定不同的选项来配置缩放过滤器
- width: 缩放图像的最大宽度
- height: 缩放图像的最大高度
- keepRatio: 保持宽高比,不要同时缩放宽度和高度(通常期望)
- keepSmaller: 如果图像已经小于给定的大小,则不缩放
- cropToFit: 如果图像尺寸与给定尺寸不匹配,则裁剪掉一些边框
- directory: 设置存储缩略图的目录。如果没有提供,则将覆盖正常图像
- adapter: 用于缩放的适配器。您可以指定一个字符串或适配器的一个实例
更多信息
您可以在我的博客文章中找到更多信息。请点击此处查看。
许可证
本软件采用简化版BSD许可证授权。