wendrowycz/skoch-filter-file-resize

此包已被放弃,不再维护。未建议替代包。

Zend Framework 的图像缩放实用工具

v1.0.2 2017-09-06 12:40 UTC

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

示例

applicationpublic 文件夹包含一些基本用法的示例。最有趣的文件是 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。其中一边可能会略小,因为我们设置了 keepRatiotrue,这意味着应保持宽高比(例如 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许可证授权。