0

我正在使用 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�%�

任何的想法?

4

1 回答 1

0

您需要首先使用该getImagine()函数来调用GDImagick哪个可用的实例,然后在对象上调用->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)).'" >';

希望能帮助到你

于 2018-02-23T14:11:11.563 回答