我正在使用yii2-imagine
$imagine = yii\imagine\Image::getImagine();
Imagine->open('path/watermark.jpg')->show('jpg');
我的问题是它没有显示图像,它表明:
����JFIF��>CREATOR: gd-jpeg v1.0 (using IJG JPEG v90), default quality ��C $.' ",#(7),01444'9=82<.342��C 2!!22222222222222222222222222222222222222222222222222����"�� ���}!1AQa"q2���#B��R��$3br� %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz��������������������������������������������������������������������������� ���w!1AQaq"2�B���� #3R�br� $4�%�
有什么想法吗?
答案 0 :(得分:0)
您需要首先使用getImagine()
函数来调用GD
或Imagick
哪个可用实例,然后在对象上调用->open()
和->show()
。此外,您还需要为图像提供$options
。您可以将以下代码复制粘贴到控制器中的操作中,并可以查看结果图像。我刚刚在我的本地系统上测试过它正在工作,只记得提供$source
变量的有效路径
use yii\imagine\Image;
$source="/path/to/your/image.jpg";
$imagine = new Image();
$options = array(
'resolution-units' => \Imagine\Image\ImageInterface::RESOLUTION_PIXELSPERINCH,
'resolution-x' => 300,
'resolution-y' => 300,
'jpeg_quality' => 100,
);
echo $imagine->getImagine()->open($source)->show('jpg',$options);
除了上述在浏览器中显示图像的解决方案,如果要在img
标记内显示图像,您可以base64_encode
从open()
方法返回的原始图像数据并提供如下标签。
echo '<img src="data:image/jpeg;base64,'.base64_encode($imagine->getImagine()->open($source)).'" >';
希望有所帮助