Files
2026-10-19 15:22:52 -07:00

98 lines
2.1 KiB
PHP

<?php
if(!defined('IN_CB'))die('You are not allowed to access to this page.');
/**
* Holds the drawing $im and can also holds all forms and texts
* You must call init().
* You can use get_im() to add other kind of form not held into these classes.
*/
class FDrawing {
private $w, $h; // int
private $color; // Fcolor
private $filename; // char *
private $im; // {object}
private $barcode = array();// BarCode *
/**
* Constructor
*
* @param int $w
* @param int $h
* @param string filename
* @param FColor $color
*/
public function __construct($w,$h,$filename,Fcolor $color) {
$this->w = $w;
$this->h = $h;
$this->filename = $filename;
$this->color = $color;
}
/**
* Destructor
*/
public function __destruct() {
$this->destroy();
}
/**
* Init Image and color background
*/
public function init(){
$this->im = imagecreate($this->w, $this->h)
or die('Can\'t Initialize the GD Libraty');
imagecolorallocate($this->im,$this->color->r(),$this->color->g(),$this->color->b());
}
/**
* @return ressource
*/
public function get_im() {
return $this->im;
}
public function set_im($im) {
$this->im = $im;
}
/**
* Add barcode into the drawing array (for future drawing)
*
* @param BarCode $barcode
*/
public function add_barcode(BarCode $barcode) {
$this->barcode[] = $barcode;
}
/**
* Draw first all forms and after all texts on $im
*/
public function draw_all() {
for($i=0;$i<count($this->barcode);$i++)
$this->barcode[$i]->draw($this->im);
}
/**
* Save $im into the file (many format available)
*
* @param int $image_style
* @param int $quality
*/
public function finish($image_style=IMG_FORMAT_PNG,$quality=100) {
if($image_style==constant('IMG_FORMAT_PNG')){
if(empty($this->filename))
imagepng($this->im);
else
imagepng($this->im,$this->filename);
}
elseif($image_style==constant('IMG_FORMAT_JPEG'))
imagejpeg($this->im,$this->filename,$quality);
}
/**
* Free the memory of PHP (called also by destructor)
*/
public function destroy() {
imagedestroy($this->im);
}
};
?>