Yii2 使用 yii2-imagine 在没有图像标签的情况下在浏览器中渲染图像
Yii2 render image in browser without image tag using yii2-imagine
我正在使用 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��br� %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz��������������������������������������������������������������������������� ���w!1AQaq"2�B���� #3R�br� �%�
有什么想法吗?
您需要先使用 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)).'" >';
希望对您有所帮助
我正在使用 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��br� %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz��������������������������������������������������������������������������� ���w!1AQaq"2�B���� #3R�br� �%�
有什么想法吗?
您需要先使用 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)).'" >';
希望对您有所帮助