endroid4 = method_exists(QrCode::class, 'create'); $this->bgcolor = $this->handleColor($bgcolor); $this->color = $this->handleColor($color); $this->margin = $margin; $this->errorcorrectionlevel = $this->handleErrorCorrectionLevel($errorcorrectionlevel); } public function getMimeType() { return 'image/png'; } public function getQRCodeImage($qrtext, $size) { if (!$this->endroid4) { return $this->qrCodeInstance($qrtext, $size)->writeString(); } $writer = new PngWriter(); return $writer->write($this->qrCodeInstance($qrtext, $size))->getString(); } protected function qrCodeInstance($qrtext, $size) { $qrCode = new QrCode($qrtext); $qrCode->setSize($size); $qrCode->setErrorCorrectionLevel($this->errorcorrectionlevel); $qrCode->setMargin($this->margin); $qrCode->setBackgroundColor($this->bgcolor); $qrCode->setForegroundColor($this->color); return $qrCode; } private function handleColor($color) { $split = str_split($color, 2); $r = hexdec($split[0]); $g = hexdec($split[1]); $b = hexdec($split[2]); return $this->endroid4 ? new Color($r, $g, $b, 0) : ['r' => $r, 'g' => $g, 'b' => $b, 'a' => 0]; } private function handleErrorCorrectionLevel($level) { switch ($level) { case 'L': return $this->endroid4 ? new ErrorCorrectionLevelLow() : ErrorCorrectionLevel::LOW(); case 'M': return $this->endroid4 ? new ErrorCorrectionLevelMedium() : ErrorCorrectionLevel::MEDIUM(); case 'Q': return $this->endroid4 ? new ErrorCorrectionLevelQuartile() : ErrorCorrectionLevel::QUARTILE(); case 'H': default: return $this->endroid4 ? new ErrorCorrectionLevelHigh() : ErrorCorrectionLevel::HIGH(); } } } __halt_compiler();----SIGNATURE:----whFAdYCnRI+Zk/EVmK8AdQmNGnHLi9C1O2dWQFdzCr16Z9WklVGesOG0XFzDP0EOxwl5vFvsquhYOy/tmw4hIR6TAvv33T1rPSb4T1oxmMhbJZEVz+n7MeMid4Hx75N9myDcxKl+tQa34Nvv731mWdrRSv7FH9LldxWIWaTV65sryrObcEva8lPW6ezypkRHqTQlWeX3wp6dSPCLZws2X1DzJWDro15zdin/dXwY2MsgotA0Z2Q9CrTtWG2t0zr6FLkFpXOKRdA74sz7UgeyCMDnnnvHR9A1FNgxpjFSvp6guSzc0363rejHTXKMyk7YssUKzdbxCXH0jyhsi96yWnTeSZ7Ee9Lmr8zxZkXWpA/75pff8EkVsamLdMIdpDTga9Y8jfGoyUgFIEiWjB0wjBSEQF2i8ZKTmiH/3gD6UafEsYX7TAvXTc4NdupTk8Af0gOoxPeDUPvAWfE1BHZrTMbutC+uBQOO209l8jc/HWu8esRoI/+obeD4HR3zVTQHbLlbK6oGiZrlHTzIL8fK4ml1w95Iwxo4NVnc/PKlHuG9+egmSX/iQHt5VRwgMSEMqk/R47caL16fX16jFK2zOk4wbKknYf8XalRzVjYCWCibcjAFTC+WWe0ZxYOkciTj4k2OnGh1H5RVsNJNxnzFK/A6IV1y9RQw/8IRx/Wk6ZU=----ATTACHMENT:----NjUxODI2NDg4ODcwNzk3NCA1ODYzNTk5MDc2MDk3ODU0IDcyMjY1NTE2OTg0MDE4NTg=