CasperSecurity

Current Path : /var/www/uim.org.in/limsysuim/BCG/class/
Upload File :
Current File : /var/www/uim.org.in/limsysuim/BCG/class/BCGFontFile.php

<?php
/**
 *--------------------------------------------------------------------
 *
 * Holds font family and size.
 *
 *--------------------------------------------------------------------
 * Copyright (C) Jean-Sebastien Goupil
 * http://www.barcodephp.com
 */
include_once('BCGArgumentException.php');
include_once('BCGFont.php');

class BCGFontFile implements BCGFont {
    const PHP_BOX_FIX = 0;

    private $path;
    private $size;
    private $text = '';
    private $rotationAngle = 0;
    private $box;
    private $underlineX;
    private $underlineY;
    private $boxFix;

    /**
     * Constructor.
     *
     * @param string $fontPath path to the file
     * @param int $size size in point
     */
    public function __construct($fontPath, $size) {
        if (!file_exists($fontPath)) {
            throw new BCGArgumentException('The font path is incorrect.', 'fontPath');
        }

        $this->path = $fontPath;
        $this->size = $size;
        $this->setRotationAngle(0);
        $this->setBoxFix(self::PHP_BOX_FIX);
    }

    /**
     * Gets the text associated to the font.
     *
     * @return string
     */
    public function getText() {
        return $this->text;
    }

    /**
     * Sets the text associated to the font.
     *
     * @param string text
     */
    public function setText($text) {
        $this->text = $text;
        $this->rebuildBox();
    }

    /**
     * Gets the rotation in degree.
     *
     * @return int
     */
    public function getRotationAngle() {
        return $this->rotationAngle;
    }

    /**
     * Sets the rotation in degree.
     *
     * @param int
     */
    public function setRotationAngle($rotationAngle) {
        $this->rotationAngle = (int)$rotationAngle;
        if ($this->rotationAngle !== 90 && $this->rotationAngle !== 180 && $this->rotationAngle !== 270) {
            $this->rotationAngle = 0;
        }

        $this->rebuildBox();
    }

    /**
     * Gets the background color.
     *
     * @return BCGColor
     */
    public function getBackgroundColor() {
    }

    /**
     * Sets the background color.
     *
     * @param BCGColor $backgroundColor
     */
    public function setBackgroundColor($backgroundColor) {
    }

    public function getBoxFix() {
        return $this->boxFix;
    }

    public function setBoxFix($value) {
        $this->boxFix = intval($value);
    }

    /**
     * Returns the width and height that the text takes to be written.
     *
     * @return int[]
     */
    public function getDimension() {
        $w = 0.0;
        $h = 0.0;

        if ($this->box !== null) {
            $minX = min(array($this->box[0], $this->box[2], $this->box[4], $this->box[6]));
            $maxX = max(array($this->box[0], $this->box[2], $this->box[4], $this->box[6]));
            $minY = min(array($this->box[1], $this->box[3], $this->box[5], $this->box[7]));
            $maxY = max(array($this->box[1], $this->box[3], $this->box[5], $this->box[7]));
        
            $w = $maxX - $minX;
            $h = $maxY - $minY;
        }

        if ($this->rotationAngle === 90 || $this->rotationAngle === 270) {
            return array($h + self::PHP_BOX_FIX, $w);
        } else {
            return array($w + self::PHP_BOX_FIX, $h);
        }
    }

    /**
     * Draws the text on the image at a specific position.
     * $x and $y represent the left bottom corner.
     *
     * @param resource $im
     * @param int $color
     * @param int $x
     * @param int $y
     */
    public function draw($im, $color, $x, $y) {
        $drawingPosition = $this->getDrawingPosition($x, $y);
        imagettftext($im, $this->size, $this->rotationAngle, $drawingPosition[0], $drawingPosition[1], $color, $this->path, $this->text);
    }

    private function getDrawingPosition($x, $y) {
        $dimension = $this->getDimension();
        if ($this->rotationAngle === 0) {
            $y += abs(min($this->box[5], $this->box[7]));
        } elseif ($this->rotationAngle === 90) {
            $x += abs(min($this->box[5], $this->box[7]));
            $y += $dimension[1];
        } elseif ($this->rotationAngle === 180) {
            $x += $dimension[0];
            $y += abs(max($this->box[1], $this->box[3]));
        } elseif ($this->rotationAngle === 270) {
            $x += abs(max($this->box[1], $this->box[3]));
        }

        return array($x, $y);
    }

    private function rebuildBox() {
        $gd = imagecreate(1, 1);
        $this->box = imagettftext($gd, $this->size, 0, 0, 0, 0, $this->path, $this->text);

        $this->underlineX = abs($this->box[0]);
        $this->underlineY = abs($this->box[1]);

        if ($this->rotationAngle === 90 || $this->rotationAngle === 270) {
            $this->underlineX ^= $this->underlineY ^= $this->underlineX ^= $this->underlineY;
        }
    }
}
?>
Hacker Blog, Shell İndir, Sql İnjection, XSS Attacks, LFI Attacks, Social Hacking, Exploit Bot, Proxy Tools, Web Shell, PHP Shell, Alfa Shell İndir, Hacking Training Set, DDoS Script, Denial Of Service, Botnet, RFI Attacks, Encryption
Telegram @BIBIL_0DAY