소스 검색

:octocat: +data-uri/base64 for SVG

codemasher 5 년 전
부모
커밋
c10f5a24ec
4개의 변경된 파일8개의 추가작업 그리고 4개의 파일을 삭제
  1. 3 1
      src/Output/QRImage.php
  2. 4 0
      src/Output/QRMarkup.php
  3. 1 1
      tests/Output/QRMarkupTest.php
  4. 0 2
      tests/Output/samples/svg

+ 3 - 1
src/Output/QRImage.php

@@ -33,6 +33,8 @@ class QRImage extends QROutputAbstract{
 
 
 	/**
 	/**
 	 * @inheritDoc
 	 * @inheritDoc
+	 *
+	 * @throws \chillerlan\QRCode\QRCodeException
 	 */
 	 */
 	public function __construct(SettingsContainerInterface $options, QRMatrix $matrix){
 	public function __construct(SettingsContainerInterface $options, QRMatrix $matrix){
 
 
@@ -115,7 +117,7 @@ class QRImage extends QROutputAbstract{
 			$this->saveToFile($imageData, $file);
 			$this->saveToFile($imageData, $file);
 		}
 		}
 
 
-		if((bool)$this->options->imageBase64){
+		if($this->options->imageBase64){
 			$imageData = sprintf('data:image/%s;base64,%s', $this->options->outputType, base64_encode($imageData));
 			$imageData = sprintf('data:image/%s;base64,%s', $this->options->outputType, base64_encode($imageData));
 		}
 		}
 
 

+ 4 - 0
src/Output/QRMarkup.php

@@ -150,6 +150,10 @@ class QRMarkup extends QROutputAbstract{
 			       $this->options->eol.$svg;
 			       $this->options->eol.$svg;
 		}
 		}
 
 
+		if($this->options->imageBase64){
+			$svg = sprintf('data:image/svg+xml;base64,%s', base64_encode($svg));
+		}
+
 		return $svg;
 		return $svg;
 	}
 	}
 
 

+ 1 - 1
tests/Output/QRMarkupTest.php

@@ -43,7 +43,7 @@ class QRMarkupTest extends QROutputTestAbstract{
 	 * @inheritDoc
 	 * @inheritDoc
 	 */
 	 */
 	public function testSetModuleValues():void{
 	public function testSetModuleValues():void{
-
+		$this->options->imageBase64  = false;
 		$this->options->moduleValues = [
 		$this->options->moduleValues = [
 			// data
 			// data
 			1024 => '#4A6000',
 			1024 => '#4A6000',

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 2
tests/Output/samples/svg


이 변경점에서 너무 많은 파일들이 변경되어 몇몇 파일들은 표시되지 않았습니다.