我有以下代码,库是通过composer安装的。
型号:
public function insertQR()
{
$this->qrCode = new QrCode();
$this->qrCode
->setText($this->qr_text)
->setSize(300)
->setPadding(10)
->setErrorCorrection('high')
->setForegroundColor(['r' => 0, 'g' => 0, 'b' => 0, 'a' => 0])
->setBackgroundColor(['r' => 255, 'g' => 255, 'b' => 255, 'a' => 0])
->setLabel('Scan the code')
->setLabelFontSize(16)
->setImageType(QrCode::IMAGE_TYPE_PNG)
;
}// end function
查看:
<?php
// now we can directly output the qrcode
header('Content-Type: '.$model->qrCode->getContentType());
$model->qrCode->render();
?>
然而,在渲染视图的那一刻,我得到了以下原始png而不是png: �PNGIHDR@ [V�J�!PLTE���������???���___���&gt;�-�pHYSs���+�IDATx����n�F� a��....
可能有什么不对?感谢。
答案 0 :(得分:0)
设置标题如下:
// At the top.
use yii\web\Response;
// In your function.
$response = Yii::$app->getResponse();
$response->headers->set('Content-Type', $model->qrCode->getContentType());
$response->format = Response::FORMAT_RAW;
$model->qrCode->render();
Yii2要求在返回图像响应时将响应的格式设置为raw。
答案 1 :(得分:0)
->setSize(300)
将其增加到更大的数字,例如500或1000