【问题标题】:phpThumb - is it possible to add more than one filter using the setParameter method?phpThumb - 是否可以使用 setParameter 方法添加多个过滤器?
【发布时间】:2015-07-22 19:31:02
【问题描述】:

我正在使用 phpThumb 构建缩略图构造函数(James Heinrich 实现可用here)。基本上,我封装了phpThumb 类以使用如下语法构建缩略图:

$thumbnail = \Helpers\Images::getThumbnail("/assets/images/sample.png", [
    "width" => 150,
    "filters" => [
        "grayscale"
    ]
]);

这会检查我使用给定的一组选项和过滤器请求缩略图的图像是否存在,如果存在,它只会给我这个资源的 URL。如果没有,它会处理图像,保存生成的缩略图并给我这个新创建的资源的 URL。

到目前为止,一切都很好。当我尝试像这样添加多个过滤器时,我的问题就出现了:

$thumbnail = \Helpers\Images::getThumbnail("/assets/images/sample.png", [
    "width" => 150,
    "filters" => [
        "blur" => 25,
        "grayscale"
    ]
]);

在内部,我这样做:

    /**
     * more filter cases here
     */
} elseif ($filter === "blur") {
    if (!empty($parameters)) {
        if (sizeof($parameters === 1)) {
            $value = current($parameters);

            if (is_numeric($value)) {
                if ($value >= 0) {
                    if ($value <= 25) {
                        $phpthumb->setParameter("fltr", implode("|", [
                            $filters[$filter],
                            $value
                        ]));
                    }
                }
            }
        }
    }
} elseif ($filter === "brightness") {
    /**
     * more filter cases here
     */

$filters[$filter] 只是一个关联数组,具有不同的过滤器操作码,如 usm(不锐化)、gblr(高斯模糊)等。

似乎多次调用setParameter() 方法并没有像我想要的那样工作(或者应该像它应该的那样)。

有没有办法使用 OO 方法将不同的过滤器堆叠在一起?

【问题讨论】:

    标签: php parameters filter phpthumb


    【解决方案1】:

    没关系,我通过更改核心逻辑解决了它。在循环中调用setParameter() 方法并以数组格式存储所有操作解决了我的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-07
      • 1970-01-01
      • 2012-01-12
      • 2015-11-07
      • 1970-01-01
      • 2018-05-21
      • 1970-01-01
      • 2016-05-15
      相关资源
      最近更新 更多