Php 想象一下yii2的扩展

Php 想象一下yii2的扩展,php,image,yii2,Php,Image,Yii2,有了YIIFramework2.0,我想对YII2使用Imagine扩展。根据文档,我首先运行以下命令行 php composer.phar require --prefer-dist yiisoft/yii2-imagine "*" 运行上面的命令行之后,我可以看到imagine包出现在供应商目录中。在我的views/site/index.php中,我包含了以下代码片段 use yii\imagine\Image; // generate a thumbnail image Image::

有了YIIFramework2.0,我想对YII2使用Imagine扩展。根据文档,我首先运行以下命令行

php composer.phar require --prefer-dist yiisoft/yii2-imagine "*"
运行上面的命令行之后,我可以看到imagine包出现在供应商目录中。在我的views/site/index.php中,我包含了以下代码片段

use yii\imagine\Image;

// generate a thumbnail image
Image::thumbnail('@webroot/img/test-image.jpg', 120, 120)
->save(Yii::getAlias('@runtime/thumb-test-image.jpg'), ['quality' => 50]);
结果如下:

�PNG  IHDRxx9d6�  pHYs���+ IDATx���y�eW}��9w�o�o��ZJ��6��1`޺c��D�n�����L�8㈞G��c{�����r�ƀ$���R{UVV��[�{w?g�x�/�ʪJUI ;������=��l�������#.\�����Bl'��� @�ul� IL�@)����-�"MS<�C���+����Z��븫0�R��������Ã>���?����q�|�;ߡ�n�c�v������a Dg4'IJ��W�`���Įr��a}�V�^)�վ�~���l6{�|
�巴布亚新几内亚IHDRxx9d6�  物理���+ IDATx���Y�eW}��9w�o�o��ZJ��6��1`޺c��D�N�����L�8.㈞G��c{�����R�ƀ$���R{UVV��[�{w?g�x�/�ʪ瑞;������=��L�������#.\����� Bl'��� @�保险商实验室� 白细胞介素�@)����-�“小姐���?����Q�|�;ߡ�N�C� v������Dg4'IJ��W�`���Įr��a}�v�^)�վ�~���l6{�|
没有显示图像。我不知道我错过了什么,图像路径是正确的。有人知道如何解决它吗?谢谢

Image::thumbnail(Yii::getAlias('@webroot').'/img/test-image.jpg', 120, 120)->save(Yii::getAlias('@runtime').'/thumb-test-image.jpg');

安装Yi2 imagine软件包后,由composer创建缩略图图像

php composer.phar require——首选dist yiisoft/yii2

您需要完整路径来保存上传的图像和缩略图,所以我们使用完整路径,如Yii::$app->basePath。“/web/img/testimg.jpg”

您需要在siteController.php的顶部添加

添加语法:使用yii\imagine\Image

那就试试这个

Image::thumbnail(Yii::$app->basePath."/web/img/testimg.jpg"., 120, 120)->save(Yii::$app->basePath."/web/img/thumb_testimg.jpg", ['quality' => 80]);

这是生成拇指和尊重比率的正确方法:

use Imagine\Image\Box;
use yii\imagine\Image;

Image::getImagine()
                ->open($file)
                ->thumbnail(new Box($height, $width))
                ->save($file);

将该二进制字符串保存到具有有效扩展名的文件中你能再给我解释一下如何将该二进制字符串保存到具有有效扩展名的文件中吗?我想它现在是用Save()的名称“@runtime/thumb test image.jpg”保存的方法。如何查看图像?如果要在浏览器中显示图像,则需要发送相应的标题。这可能是一个有效的答案,但如果您解释了代码的作用(您可以选择您的答案),这将是一个更好的答案。