Yii2 - 想象一下 - 创建缩略图并保持透明背景

时间:2016-04-08 06:41:48

标签: yii2 php-imagine

我正在尝试上传图片并将其缩放到最大200px宽度或200px高度取决于哪个更大,使用Imagine。

我读了这个链接:Imagine,其中说:

  

如果缩略图尺寸之一设置为null,则会根据原始图像的纵横比自动计算另一个尺寸。

我试过这段代码来改变宽度:

Image::thumbnail($target, 200, null)->save($target_to);

收到错误: Exception Imagine \ Exception \ InvalidArgumentException with message Length side不能为0或者为负数。

我也在尝试上传透明背景的png文件。 看着同样的链接,它说:

  

如果缩略图模式为ImageInterface :: THUMBNAIL_INSET,则缩小原始图像,使其完全包含在缩略图尺寸范围内。其余部分充满了可以通过yii \ imag \ Image :: $ thumbnailBackgroundColor和yii \ imag \ Image :: $ thumbnailBackgroundAlpha。

配置的背景。

看看他们给出的链接,它说会填满:

  

$ thumbnailBackgroundAlpha public static property(自2.0.4版开始提供)   在指定宽度和高度的ImageInterface :: THUMBNAIL_INSET模式下创建缩略图时使用的背景alpha(透明度)。默认是稳定的。   public static string $ thumbnailBackgroundAlpha = 100   $ thumbnailBackgroundColor公共静态属性(自2.0.4版起可用)在指定宽度和高度的ImageInterface :: THUMBNAIL_INSET模式下创建缩略图时使用的背景颜色。默认为白色。   public static string $ thumbnailBackgroundColor =' FFF'

我有两个问题:

  1. 这会保持透明背景吗? public static string $ thumbnailBackgroundAlpha = 100 $ thumbnailBackgroundColor public static property(自2.0.4版起可用)

  2. 我不想给出宽度和高度,只有一个尺寸,因此图像会相应调整大小。我该怎么做?

1 个答案:

答案 0 :(得分:0)

Image thumbnail与最新发行版一样,将null作为参数传递会将相应的null参数值设为零,从而引发异常。您可以使用如图中所示解决它。正如您在代码中看到的那样,我仅传递了宽度参数(即400)并使用该参数计算了高度,并传递给了缩略图方法。