mirror of
https://github.com/chillerlan/php-qrcode.git
synced 2026-08-28 11:07:25 +00:00
:octocat: convert errors to exceptions in GD output
This commit is contained in:
+13
-2
@@ -15,11 +15,11 @@ namespace chillerlan\QRCode\Output;
|
||||
use chillerlan\QRCode\Data\QRMatrix;
|
||||
use chillerlan\QRCode\QRCode;
|
||||
use chillerlan\Settings\SettingsContainerInterface;
|
||||
use Exception;
|
||||
use ErrorException, Exception;
|
||||
|
||||
use function array_values, count, extension_loaded, imagecolorallocate, imagecolortransparent, imagecreatetruecolor,
|
||||
imagedestroy, imagefilledellipse, imagefilledrectangle, imagegif, imagejpeg, imagepng, imagescale, in_array,
|
||||
is_array, ob_end_clean, ob_get_contents, ob_start, range;
|
||||
is_array, ob_end_clean, ob_get_contents, ob_start, range, restore_error_handler, set_error_handler;
|
||||
use const IMG_BICUBIC;
|
||||
|
||||
/**
|
||||
@@ -90,8 +90,15 @@ class QRImage extends QROutputAbstract{
|
||||
* @return string|resource|\GdImage
|
||||
*
|
||||
* @phan-suppress PhanUndeclaredTypeReturnType, PhanTypeMismatchReturn
|
||||
* @throws \ErrorException
|
||||
*/
|
||||
public function dump(string $file = null){
|
||||
|
||||
/** @phan-suppress-next-line PhanTypeMismatchArgumentInternal */
|
||||
set_error_handler(function(int $severity, string $msg, string $file, int $line):void{
|
||||
throw new ErrorException($msg, 0, $severity, $file, $line);
|
||||
});
|
||||
|
||||
$file ??= $this->options->cachefile;
|
||||
|
||||
// we're scaling the image up in order to draw crisp round circles, otherwise they appear square-y on small scales
|
||||
@@ -126,6 +133,8 @@ class QRImage extends QROutputAbstract{
|
||||
}
|
||||
|
||||
if($this->options->returnResource){
|
||||
restore_error_handler();
|
||||
|
||||
return $this->image;
|
||||
}
|
||||
|
||||
@@ -139,6 +148,8 @@ class QRImage extends QROutputAbstract{
|
||||
$imageData = $this->base64encode($imageData, 'image/'.$this->options->outputType);
|
||||
}
|
||||
|
||||
restore_error_handler();
|
||||
|
||||
return $imageData;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user