From 934f18c4040ec5a5d228cc560eb9c64851684164 Mon Sep 17 00:00:00 2001 From: codemasher Date: Wed, 18 Nov 2020 19:10:39 +0100 Subject: [PATCH] :octocat: cleanup --- examples/QRImageWithText.php | 57 ++++++++++++++++-------------------- 1 file changed, 26 insertions(+), 31 deletions(-) diff --git a/examples/QRImageWithText.php b/examples/QRImageWithText.php index 4923b5087..fe6b962a9 100644 --- a/examples/QRImageWithText.php +++ b/examples/QRImageWithText.php @@ -3,7 +3,8 @@ * Class QRImageWithText * * example for additional text - * @link https://github.com/chillerlan/php-qrcode/issues/35 + * + * @link https://github.com/chillerlan/php-qrcode/issues/35 * * @filesource QRImageWithText.php * @created 22.06.2019 @@ -11,12 +12,17 @@ * @author smiley * @copyright 2019 smiley * @license MIT + * + * @noinspection PhpComposerExtensionStubsInspection */ namespace chillerlan\QRCodeExamples; use chillerlan\QRCode\Output\QRImage; +use function base64_encode, imagechar, imagecolorallocate, imagecolortransparent, imagecopymerge, imagecreatetruecolor, + imagedestroy, imagefilledrectangle, imagefontwidth, in_array, round, str_split, strlen; + class QRImageWithText extends QRImage{ /** @@ -26,22 +32,11 @@ class QRImageWithText extends QRImage{ * @return string */ public function dump(string $file = null, string $text = null):string{ - $file ??= $this->options->cachefile; + // set returnResource to true to skip further processing for now + $this->options->returnResource = true; - $this->image = \imagecreatetruecolor($this->length, $this->length); - $background = \imagecolorallocate($this->image, ...$this->options->imageTransparencyBG); - - if((bool)$this->options->imageTransparent && \in_array($this->options->outputType, $this::TRANSPARENCY_TYPES, true)){ - \imagecolortransparent($this->image, $background); - } - - \imagefilledrectangle($this->image, 0, 0, $this->length, $this->length, $background); - - foreach($this->matrix->matrix() as $y => $row){ - foreach($row as $x => $M_TYPE){ - $this->setPixel($x, $y, $this->moduleValues[$M_TYPE]); - } - } + // there's no need to save the result of dump() into $this->image here + parent::dump($file); // render text output if a string is given if($text !== null){ @@ -54,8 +49,8 @@ class QRImageWithText extends QRImage{ $this->saveToFile($imageData, $file); } - if((bool)$this->options->imageBase64){ - $imageData = 'data:image/'.$this->options->outputType.';base64,'.\base64_encode($imageData); + if($this->options->imageBase64){ + $imageData = 'data:image/'.$this->options->outputType.';base64,'.base64_encode($imageData); } return $imageData; @@ -69,7 +64,7 @@ class QRImageWithText extends QRImage{ $qrcode = $this->image; // options things - $textSize = 3; // see imagefontheight() and imagefontwidth() + $textSize = 3; // see imagefontheight() and imagefontwidth() $textBG = [200, 200, 200]; $textColor = [50, 50, 50]; @@ -77,28 +72,28 @@ class QRImageWithText extends QRImage{ $bgHeight = $bgWidth + 20; // 20px extra space // create a new image with additional space - $this->image = \imagecreatetruecolor($bgWidth, $bgHeight); - $background = \imagecolorallocate($this->image, ...$textBG); + $this->image = imagecreatetruecolor($bgWidth, $bgHeight); + $background = imagecolorallocate($this->image, ...$textBG); // allow transparency - if((bool)$this->options->imageTransparent && \in_array($this->options->outputType, $this::TRANSPARENCY_TYPES, true)){ - \imagecolortransparent($this->image, $background); + if($this->options->imageTransparent && in_array($this->options->outputType, $this::TRANSPARENCY_TYPES, true)){ + imagecolortransparent($this->image, $background); } // fill the background - \imagefilledrectangle($this->image, 0, 0, $bgWidth, $bgHeight, $background); + imagefilledrectangle($this->image, 0, 0, $bgWidth, $bgHeight, $background); // copy over the qrcode - \imagecopymerge($this->image, $qrcode, 0, 0, 0, 0, $this->length, $this->length, 100); - \imagedestroy($qrcode); + imagecopymerge($this->image, $qrcode, 0, 0, 0, 0, $this->length, $this->length, 100); + imagedestroy($qrcode); - $fontColor = \imagecolorallocate($this->image, ...$textColor); - $w = \imagefontwidth($textSize); - $x = \round(($bgWidth - \strlen($text) * $w) / 2); + $fontColor = imagecolorallocate($this->image, ...$textColor); + $w = imagefontwidth($textSize); + $x = round(($bgWidth - strlen($text) * $w) / 2); // loop through the string and draw the letters - foreach(\str_split($text) as $i => $chr){ - \imagechar($this->image, $textSize, (int)($i * $w + $x), $this->length, $chr, $fontColor); + foreach(str_split($text) as $i => $chr){ + imagechar($this->image, $textSize, (int)($i * $w + $x), $this->length, $chr, $fontColor); } }