PHP直接將文件流轉換為字符串
阿新 • • 發佈:2019-03-14
qrcode 文件 col etc color ob_start ttext ren pad
有時候不需要圖片直接輸出到瀏覽器,需要如下處理!
輸出到瀏覽器
$qrCode = new QrCode(); $qrCode ->setText('Life is too short to be generating QR codes') ->setSize(300) ->setPadding(10) ->setErrorCorrection('high') ->setForegroundColor(['r' => 0, 'g' => 0, 'b' => 0, 'a' => 0]) ->setBackgroundColor(['r' => 255, 'g' => 255, 'b' => 255, 'a' => 0]) ->setLabelFontSize(16) ->setImageType(QrCode::IMAGE_TYPE_PNG); header('Content-Type: '.$qrCode->getContentType()); $qrCode->render();
轉為字符串
$qrCode = new QrCode(); $qrCode ->setText('Life is too short to be generating QR codes') ->setSize(300) ->setPadding(10) ->setErrorCorrection('high') ->setForegroundColor(['r' => 0, 'g' => 0, 'b' => 0, 'a' => 0]) ->setBackgroundColor(['r' => 255, 'g' => 255, 'b' => 255, 'a' => 0]) ->setLabelFontSize(16) ->setImageType(QrCode::IMAGE_TYPE_PNG); // 開啟緩沖區 ob_start (); // 將圖片寫入內存 imagepng ($qrCode->render()); // 從內存中讀取圖片 $imageData = ob_get_contents(); // 關閉緩沖區 ob_end_clean (); // 將內容寫入cdn $up_res = $this->upload_cdn($imageData); dump($up_res);
或者再折騰成base64
$qrCode = new QrCode(); $qrCode ->setText('Life is too short to be generating QR codes') ->setSize(300) ->setPadding(10) ->setErrorCorrection('high') ->setForegroundColor(['r' => 0, 'g' => 0, 'b' => 0, 'a' => 0]) ->setBackgroundColor(['r' => 255, 'g' => 255, 'b' => 255, 'a' => 0]) ->setLabelFontSize(16) ->setImageType(QrCode::IMAGE_TYPE_PNG); // 開啟緩存 ob_start(); imagepng($qrCode->render()); // 從內存中讀取圖片 $imageData = ob_get_contents(); // 關閉緩沖區 ob_end_clean (); $imageDataBase64 = 'data:image/png;base64,' . base64_encode ($imageData); echo "<img src='$imageDataBase64'/>";
PHP直接將文件流轉換為字符串