我正在尝试上传图片并将其缩放到最大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'
我有两个问题:
这会保持透明背景吗? public static string $ thumbnailBackgroundAlpha = 100 $ thumbnailBackgroundColor public static property(自2.0.4版起可用)
我不想给出宽度和高度,只有一个尺寸,因此图像会相应调整大小。我该怎么做?
答案 0 :(得分:0)
与最新发行版一样,将null作为参数传递会将相应的null
参数值设为零,从而引发异常。您可以使用如图中所示解决它。正如您在代码中看到的那样,我仅传递了宽度参数(即400)并使用该参数计算了高度,并传递给了缩略图方法。