allow vendord
All checks were successful
Build, Push and Deploy / build-and-push (push) Successful in 3m3s
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 16s
Build, Push and Deploy / deploy-staging (push) Successful in 32s
Build, Push and Deploy / deploy-production (push) Has been skipped
Build, Push and Deploy / cleanup (push) Successful in 1s
All checks were successful
Build, Push and Deploy / build-and-push (push) Successful in 3m3s
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 16s
Build, Push and Deploy / deploy-staging (push) Successful in 32s
Build, Push and Deploy / deploy-production (push) Has been skipped
Build, Push and Deploy / cleanup (push) Successful in 1s
This commit is contained in:
44
vendor/ageekdev/laravel-barcode/src/Drivers/DynamicHTML.php
vendored
Normal file
44
vendor/ageekdev/laravel-barcode/src/Drivers/DynamicHTML.php
vendored
Normal file
@@ -0,0 +1,44 @@
|
||||
<?php
|
||||
|
||||
namespace AgeekDev\Barcode\Drivers;
|
||||
|
||||
use AgeekDev\Barcode\AbstractGenerator;
|
||||
use AgeekDev\Barcode\BarcodeBar;
|
||||
|
||||
class DynamicHTML extends AbstractGenerator
|
||||
{
|
||||
private const WIDTH_PRECISION = 6;
|
||||
|
||||
/**
|
||||
* Return an HTML representation of barcode.
|
||||
* This 'dynamic' version uses percentage based widths and heights, resulting in a vector-y qualitative result.
|
||||
*
|
||||
* @param string $text code to print
|
||||
*/
|
||||
public function generate(string $text): string
|
||||
{
|
||||
$barcodeData = $this->getBarcodeData($text, $this->type);
|
||||
|
||||
$html = '<div style="font-size:0;position:relative;width:100%;height:100%">'.PHP_EOL;
|
||||
|
||||
$positionHorizontal = 0;
|
||||
/** @var BarcodeBar $bar */
|
||||
foreach ($barcodeData->getBars() as $bar) {
|
||||
$barWidth = $bar->getWidth() / $barcodeData->getWidth() * 100;
|
||||
$barHeight = round(($bar->getHeight() / $barcodeData->getHeight() * 100), 3);
|
||||
|
||||
if ($barWidth > 0 && $bar->isBar()) {
|
||||
$positionVertical = round(($bar->getPositionVertical() / $barcodeData->getHeight() * 100), 3);
|
||||
|
||||
// draw a vertical bar
|
||||
$html .= '<div style="background-color:'.$this->foregroundColor.';width:'.round($barWidth, self::WIDTH_PRECISION).'%;height:'.$barHeight.'%;position:absolute;left:'.round($positionHorizontal, self::WIDTH_PRECISION).'%;top:'.$positionVertical.(($positionVertical > 0) ? '%' : '').'"> </div>'.PHP_EOL;
|
||||
}
|
||||
|
||||
$positionHorizontal += $barWidth;
|
||||
}
|
||||
|
||||
$html .= '</div>'.PHP_EOL;
|
||||
|
||||
return $html;
|
||||
}
|
||||
}
|
||||
39
vendor/ageekdev/laravel-barcode/src/Drivers/HTML.php
vendored
Normal file
39
vendor/ageekdev/laravel-barcode/src/Drivers/HTML.php
vendored
Normal file
@@ -0,0 +1,39 @@
|
||||
<?php
|
||||
|
||||
namespace AgeekDev\Barcode\Drivers;
|
||||
|
||||
use AgeekDev\Barcode\AbstractGenerator;
|
||||
use AgeekDev\Barcode\BarcodeBar;
|
||||
|
||||
class HTML extends AbstractGenerator
|
||||
{
|
||||
/**
|
||||
* Return an HTML representation of barcode.
|
||||
* This original version uses pixel based widths and heights. Use Dynamic HTML version for better quality representation.
|
||||
*/
|
||||
public function generate(string $text): string
|
||||
{
|
||||
$barcodeData = $this->getBarcodeData($text, $this->type);
|
||||
|
||||
$html = '<div style="font-size:0;position:relative;width:'.($barcodeData->getWidth() * $this->widthFactor).'px;height:'.($this->height).'px;">'.PHP_EOL;
|
||||
|
||||
$positionHorizontal = 0;
|
||||
/** @var BarcodeBar $bar */
|
||||
foreach ($barcodeData->getBars() as $bar) {
|
||||
$barWidth = round(($bar->getWidth() * $this->widthFactor), 3);
|
||||
$barHeight = round(($bar->getHeight() * $this->height / $barcodeData->getHeight()), 3);
|
||||
|
||||
if ($barWidth > 0 && $bar->isBar()) {
|
||||
$positionVertical = round(($bar->getPositionVertical() * $this->height / $barcodeData->getHeight()), 3);
|
||||
|
||||
$html .= '<div style="background-color:'.$this->foregroundColor.';width:'.$barWidth.'px;height:'.$barHeight.'px;position:absolute;left:'.$positionHorizontal.'px;top:'.$positionVertical.(($positionVertical > 0) ? 'px' : '').'"> </div>'.PHP_EOL;
|
||||
}
|
||||
|
||||
$positionHorizontal += $barWidth;
|
||||
}
|
||||
|
||||
$html .= '</div>'.PHP_EOL;
|
||||
|
||||
return $html;
|
||||
}
|
||||
}
|
||||
22
vendor/ageekdev/laravel-barcode/src/Drivers/JPG.php
vendored
Normal file
22
vendor/ageekdev/laravel-barcode/src/Drivers/JPG.php
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
namespace AgeekDev\Barcode\Drivers;
|
||||
|
||||
use Imagick;
|
||||
|
||||
class JPG extends PNG
|
||||
{
|
||||
protected function createImagickImageObject(int $width, int $height): Imagick
|
||||
{
|
||||
$image = new Imagick;
|
||||
$image->newImage($width, $height, 'white', 'JPG');
|
||||
|
||||
return $image;
|
||||
}
|
||||
|
||||
protected function generateGdImage($image): void
|
||||
{
|
||||
imagejpeg($image);
|
||||
imagedestroy($image);
|
||||
}
|
||||
}
|
||||
141
vendor/ageekdev/laravel-barcode/src/Drivers/PNG.php
vendored
Normal file
141
vendor/ageekdev/laravel-barcode/src/Drivers/PNG.php
vendored
Normal file
@@ -0,0 +1,141 @@
|
||||
<?php
|
||||
|
||||
namespace AgeekDev\Barcode\Drivers;
|
||||
|
||||
use AgeekDev\Barcode\AbstractGenerator;
|
||||
use AgeekDev\Barcode\BarcodeBar;
|
||||
use AgeekDev\Barcode\Exceptions\BarcodeException;
|
||||
use Imagick;
|
||||
use imagickdraw;
|
||||
use imagickpixel;
|
||||
use Spatie\Color\Hex;
|
||||
|
||||
class PNG extends AbstractGenerator
|
||||
{
|
||||
protected bool $useImagick = true;
|
||||
|
||||
/**
|
||||
* @throws BarcodeException
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
// Auto switch between GD and Imagick based on what is installed
|
||||
if (extension_loaded('imagick')) {
|
||||
$this->useImagick = true;
|
||||
} elseif (function_exists('imagecreate')) {
|
||||
$this->useImagick = false;
|
||||
} else {
|
||||
throw new BarcodeException('Neither gd-lib or imagick are installed!');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Force the use of Imagick image extension.
|
||||
*/
|
||||
public function useImagick(): self
|
||||
{
|
||||
$this->useImagick = true;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Force the use of the GD image library.
|
||||
*/
|
||||
public function useGd(): self
|
||||
{
|
||||
$this->useImagick = false;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $text code to print
|
||||
*
|
||||
* @throws \ImagickDrawException
|
||||
* @throws \ImagickException
|
||||
* @throws \ImagickPixelException
|
||||
*/
|
||||
public function generate(string $text): string
|
||||
{
|
||||
$barcodeData = $this->getBarcodeData($text, $this->type);
|
||||
$width = round($barcodeData->getWidth() * $this->widthFactor);
|
||||
|
||||
$foregroundColor = $this->getForegroundColor();
|
||||
|
||||
if ($this->useImagick) {
|
||||
$imagickBarsShape = new imagickdraw;
|
||||
$imagickBarsShape->setFillColor(new imagickpixel('rgb('.implode(',', $foregroundColor).')'));
|
||||
} else {
|
||||
$image = $this->createGdImageObject($width, $this->height);
|
||||
$gdForegroundColor = imagecolorallocate($image, $foregroundColor[0], $foregroundColor[1], $foregroundColor[2]);
|
||||
}
|
||||
|
||||
// print bars
|
||||
$positionHorizontal = 0;
|
||||
/** @var BarcodeBar $bar */
|
||||
foreach ($barcodeData->getBars() as $bar) {
|
||||
$barWidth = round(($bar->getWidth() * $this->widthFactor), 3);
|
||||
|
||||
if ($barWidth > 0 && $bar->isBar()) {
|
||||
$y = round(($bar->getPositionVertical() * $this->height / $barcodeData->getHeight()), 3);
|
||||
$barHeight = round(($bar->getHeight() * $this->height / $barcodeData->getHeight()), 3);
|
||||
|
||||
// draw a vertical bar
|
||||
if ($this->useImagick) {
|
||||
$imagickBarsShape->rectangle($positionHorizontal, $y, ($positionHorizontal + $barWidth - 1), ($y + $barHeight));
|
||||
} else {
|
||||
imagefilledrectangle($image, $positionHorizontal, $y, ($positionHorizontal + $barWidth - 1), ($y + $barHeight), $gdForegroundColor);
|
||||
}
|
||||
}
|
||||
$positionHorizontal += $barWidth;
|
||||
}
|
||||
|
||||
if ($this->useImagick) {
|
||||
$image = $this->createImagickImageObject($width, $this->height);
|
||||
$image->drawImage($imagickBarsShape);
|
||||
|
||||
return $image->getImageBlob();
|
||||
}
|
||||
|
||||
ob_start();
|
||||
$this->generateGdImage($image);
|
||||
|
||||
return ob_get_clean();
|
||||
}
|
||||
|
||||
public function getForegroundColor(): string|array
|
||||
{
|
||||
$color = Hex::fromString($this->foregroundColor)->toRgba();
|
||||
|
||||
return [$color->red(), $color->blue(), $color->green()];
|
||||
}
|
||||
|
||||
protected function createGdImageObject(int $width, int $height)
|
||||
{
|
||||
$image = imagecreate($width, $height);
|
||||
$colorBackground = imagecolorallocate($image, 255, 255, 255);
|
||||
imagecolortransparent($image, $colorBackground);
|
||||
|
||||
return $image;
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws \ImagickException
|
||||
*/
|
||||
protected function createImagickImageObject(int $width, int $height): Imagick
|
||||
{
|
||||
$image = new Imagick;
|
||||
$image->newImage($width, $height, 'none', 'PNG');
|
||||
|
||||
return $image;
|
||||
}
|
||||
|
||||
protected function generateGdImage($image): void
|
||||
{
|
||||
imagepng($image);
|
||||
imagedestroy($image);
|
||||
}
|
||||
}
|
||||
50
vendor/ageekdev/laravel-barcode/src/Drivers/SVG.php
vendored
Normal file
50
vendor/ageekdev/laravel-barcode/src/Drivers/SVG.php
vendored
Normal file
@@ -0,0 +1,50 @@
|
||||
<?php
|
||||
|
||||
namespace AgeekDev\Barcode\Drivers;
|
||||
|
||||
use AgeekDev\Barcode\AbstractGenerator;
|
||||
use AgeekDev\Barcode\BarcodeBar;
|
||||
|
||||
class SVG extends AbstractGenerator
|
||||
{
|
||||
/**
|
||||
* Return SVG string representation of barcode.
|
||||
*
|
||||
* @param string $text code to print
|
||||
*/
|
||||
public function generate(string $text): string
|
||||
{
|
||||
$barcodeData = $this->getBarcodeData($text, $this->type);
|
||||
|
||||
// replace table for special characters
|
||||
$repstr = ["\0" => '', '&' => '&', '<' => '<', '>' => '>'];
|
||||
|
||||
$width = round(($barcodeData->getWidth() * $this->widthFactor), 3);
|
||||
|
||||
$svg = '<?xml version="1.0" standalone="no" ?>'.PHP_EOL;
|
||||
$svg .= '<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">'.PHP_EOL;
|
||||
$svg .= '<svg width="'.$width.'" height="'.$this->height.'" viewBox="0 0 '.$width.' '.$this->height.'" version="1.1" xmlns="http://www.w3.org/2000/svg">'.PHP_EOL;
|
||||
$svg .= "\t".'<desc>'.strtr($barcodeData->getBarcode(), $repstr).'</desc>'.PHP_EOL;
|
||||
$svg .= "\t".'<g id="bars" fill="'.$this->foregroundColor.'" stroke="none">'.PHP_EOL;
|
||||
|
||||
// print bars
|
||||
$positionHorizontal = 0;
|
||||
/** @var BarcodeBar $bar */
|
||||
foreach ($barcodeData->getBars() as $bar) {
|
||||
$barWidth = round(($bar->getWidth() * $this->widthFactor), 3);
|
||||
$barHeight = round(($bar->getHeight() * $this->height / $barcodeData->getHeight()), 3);
|
||||
|
||||
if ($bar->isBar() && $barWidth > 0) {
|
||||
$positionVertical = round(($bar->getPositionVertical() * $this->height / $barcodeData->getHeight()), 3);
|
||||
// draw a vertical bar
|
||||
$svg .= "\t\t".'<rect x="'.$positionHorizontal.'" y="'.$positionVertical.'" width="'.$barWidth.'" height="'.$barHeight.'" />'.PHP_EOL;
|
||||
}
|
||||
|
||||
$positionHorizontal += $barWidth;
|
||||
}
|
||||
$svg .= "\t</g>".PHP_EOL;
|
||||
$svg .= '</svg>'.PHP_EOL;
|
||||
|
||||
return $svg;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user