[TASK] Fix line endings to LF only.
This commit is contained in:
+182
-182
@@ -1,183 +1,183 @@
|
||||
<?php
|
||||
/**
|
||||
* This class will create a square png according to a given size and fill it with pixels.
|
||||
* @author JPT
|
||||
*/
|
||||
class BoxImage {
|
||||
|
||||
/**
|
||||
* @var resource
|
||||
*/
|
||||
protected $image;
|
||||
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
protected $width;
|
||||
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
protected $height;
|
||||
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
protected $pointer_x;
|
||||
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
protected $pointer_y;
|
||||
|
||||
/**
|
||||
* Basic constructor.
|
||||
* @param int $size
|
||||
* @return void
|
||||
* @throws Exception
|
||||
*/
|
||||
public function __construct($size, $mode) {
|
||||
if($size < 1) throw new Exception("This cannot be done!");
|
||||
|
||||
//determine width+height
|
||||
switch($mode) {
|
||||
case "square":
|
||||
$this->height = ceil(sqrt($size));
|
||||
$this->width = $this->height;
|
||||
break;
|
||||
case "line":
|
||||
$this->height = 1;
|
||||
$this->width = $size;
|
||||
break;
|
||||
case "bar":
|
||||
$this->height = $size;
|
||||
$this->width = 1;
|
||||
break;
|
||||
default:
|
||||
throw new Exception("Unknown mode given!");
|
||||
break;
|
||||
}
|
||||
|
||||
//prepare image for PNG with transparency using the calculated size.
|
||||
$this->image = imagecreatetruecolor($this->width, $this->height);
|
||||
|
||||
//set the alpha stuff
|
||||
imagesavealpha($this->image, TRUE);
|
||||
imagealphablending($this->image, FALSE);
|
||||
|
||||
//initialize pointers.
|
||||
$this->resetPointer();
|
||||
}
|
||||
|
||||
/**
|
||||
* Resets pointer.
|
||||
* @return void
|
||||
*/
|
||||
public function resetPointer() {
|
||||
$this->pointer_x = 0;
|
||||
$this->pointer_y = 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Fills the image with the given color.
|
||||
* @param int $r 0 - 255
|
||||
* @param int $g 0 - 255
|
||||
* @param int $b 0 - 255
|
||||
* @param int $a 127 - 0
|
||||
* @return void
|
||||
*/
|
||||
public function fillImage($r, $g, $b, $a) {
|
||||
$color = imagecolorallocatealpha($this->image, $r, $g, $b, $a);
|
||||
imagefill($this->image, 0, 0, $color);
|
||||
imagecolordeallocate($this->image, $color);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the current pixel to the given color, moves the "pointer" of the image.
|
||||
* @param int $r 0 - 255
|
||||
* @param int $g 0 - 255
|
||||
* @param int $b 0 - 255
|
||||
* @param int $a 127 - 0
|
||||
* @return void
|
||||
*/
|
||||
public function setCurrentPixel($r, $g, $b, $a) {
|
||||
$color = imagecolorallocatealpha($this->image, $r, $g, $b, $a);
|
||||
imagesetpixel($this->image, $this->pointer_x, $this->pointer_y, $color);
|
||||
imagecolordeallocate($this->image, $color);
|
||||
}
|
||||
|
||||
/**
|
||||
* Moves the x and y pointers of the image according to the offset.
|
||||
* @param int $offset
|
||||
* @throws Exception
|
||||
* @return void
|
||||
*/
|
||||
public function movePointer($offset) {
|
||||
//echo $this->pointer_x.",".$this->pointer_y." --> ";
|
||||
|
||||
if($offset === 0) return;
|
||||
if($offset > 0) $step = 1;
|
||||
if($offset < 0){
|
||||
$step = -1;
|
||||
$offset = $offset * -1;
|
||||
}
|
||||
|
||||
if(!isset($step)) throw new Exception("What the fuck?");
|
||||
|
||||
for($i = $offset; $i > 0; $i--) {
|
||||
//if we go back
|
||||
if($step === -1) {
|
||||
//decrease x-pointer
|
||||
$this->pointer_x -= 1;
|
||||
//handle y-jumps
|
||||
if($this->pointer_x < 0) {
|
||||
$this->pointer_x = $width;
|
||||
$this->pointer_y -= 1;
|
||||
//out of range?
|
||||
if($this->pointer_y < 0) throw new Exception("Out of range! (width)");
|
||||
}
|
||||
|
||||
//if we go forward
|
||||
} elseif($step === 1) {
|
||||
//increase x-pointer
|
||||
$this->pointer_x += 1;
|
||||
//handle y-jumps
|
||||
if($this->pointer_x >= $this->width) {
|
||||
$this->pointer_x = 0;
|
||||
$this->pointer_y += 1;
|
||||
//out of range?
|
||||
if($this->pointer_y >= $this->height) throw new Exception("Out of range! (height)");
|
||||
}
|
||||
} //end of if
|
||||
} //end of for
|
||||
|
||||
//echo $this->pointer_x.",".$this->pointer_y."\n";
|
||||
} //end of function
|
||||
|
||||
/**
|
||||
* Writes the PNG to a file.
|
||||
* @param string $filename
|
||||
* @param int $compression 0-9
|
||||
* @return boolean
|
||||
*/
|
||||
public function writeToFile($filename, $compression) {
|
||||
return imagepng($this->image, $filename, $compression);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets height.
|
||||
* @return int
|
||||
*/
|
||||
public function getHeight() {
|
||||
return $this->height;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets width.
|
||||
* @return int
|
||||
*/
|
||||
public function getWidth() {
|
||||
return $this->width;
|
||||
}
|
||||
|
||||
<?php
|
||||
/**
|
||||
* This class will create a square png according to a given size and fill it with pixels.
|
||||
* @author JPT
|
||||
*/
|
||||
class BoxImage {
|
||||
|
||||
/**
|
||||
* @var resource
|
||||
*/
|
||||
protected $image;
|
||||
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
protected $width;
|
||||
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
protected $height;
|
||||
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
protected $pointer_x;
|
||||
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
protected $pointer_y;
|
||||
|
||||
/**
|
||||
* Basic constructor.
|
||||
* @param int $size
|
||||
* @return void
|
||||
* @throws Exception
|
||||
*/
|
||||
public function __construct($size, $mode) {
|
||||
if($size < 1) throw new Exception("This cannot be done!");
|
||||
|
||||
//determine width+height
|
||||
switch($mode) {
|
||||
case "square":
|
||||
$this->height = ceil(sqrt($size));
|
||||
$this->width = $this->height;
|
||||
break;
|
||||
case "line":
|
||||
$this->height = 1;
|
||||
$this->width = $size;
|
||||
break;
|
||||
case "bar":
|
||||
$this->height = $size;
|
||||
$this->width = 1;
|
||||
break;
|
||||
default:
|
||||
throw new Exception("Unknown mode given!");
|
||||
break;
|
||||
}
|
||||
|
||||
//prepare image for PNG with transparency using the calculated size.
|
||||
$this->image = imagecreatetruecolor($this->width, $this->height);
|
||||
|
||||
//set the alpha stuff
|
||||
imagesavealpha($this->image, TRUE);
|
||||
imagealphablending($this->image, FALSE);
|
||||
|
||||
//initialize pointers.
|
||||
$this->resetPointer();
|
||||
}
|
||||
|
||||
/**
|
||||
* Resets pointer.
|
||||
* @return void
|
||||
*/
|
||||
public function resetPointer() {
|
||||
$this->pointer_x = 0;
|
||||
$this->pointer_y = 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Fills the image with the given color.
|
||||
* @param int $r 0 - 255
|
||||
* @param int $g 0 - 255
|
||||
* @param int $b 0 - 255
|
||||
* @param int $a 127 - 0
|
||||
* @return void
|
||||
*/
|
||||
public function fillImage($r, $g, $b, $a) {
|
||||
$color = imagecolorallocatealpha($this->image, $r, $g, $b, $a);
|
||||
imagefill($this->image, 0, 0, $color);
|
||||
imagecolordeallocate($this->image, $color);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the current pixel to the given color, moves the "pointer" of the image.
|
||||
* @param int $r 0 - 255
|
||||
* @param int $g 0 - 255
|
||||
* @param int $b 0 - 255
|
||||
* @param int $a 127 - 0
|
||||
* @return void
|
||||
*/
|
||||
public function setCurrentPixel($r, $g, $b, $a) {
|
||||
$color = imagecolorallocatealpha($this->image, $r, $g, $b, $a);
|
||||
imagesetpixel($this->image, $this->pointer_x, $this->pointer_y, $color);
|
||||
imagecolordeallocate($this->image, $color);
|
||||
}
|
||||
|
||||
/**
|
||||
* Moves the x and y pointers of the image according to the offset.
|
||||
* @param int $offset
|
||||
* @throws Exception
|
||||
* @return void
|
||||
*/
|
||||
public function movePointer($offset) {
|
||||
//echo $this->pointer_x.",".$this->pointer_y." --> ";
|
||||
|
||||
if($offset === 0) return;
|
||||
if($offset > 0) $step = 1;
|
||||
if($offset < 0){
|
||||
$step = -1;
|
||||
$offset = $offset * -1;
|
||||
}
|
||||
|
||||
if(!isset($step)) throw new Exception("What the fuck?");
|
||||
|
||||
for($i = $offset; $i > 0; $i--) {
|
||||
//if we go back
|
||||
if($step === -1) {
|
||||
//decrease x-pointer
|
||||
$this->pointer_x -= 1;
|
||||
//handle y-jumps
|
||||
if($this->pointer_x < 0) {
|
||||
$this->pointer_x = $width;
|
||||
$this->pointer_y -= 1;
|
||||
//out of range?
|
||||
if($this->pointer_y < 0) throw new Exception("Out of range! (width)");
|
||||
}
|
||||
|
||||
//if we go forward
|
||||
} elseif($step === 1) {
|
||||
//increase x-pointer
|
||||
$this->pointer_x += 1;
|
||||
//handle y-jumps
|
||||
if($this->pointer_x >= $this->width) {
|
||||
$this->pointer_x = 0;
|
||||
$this->pointer_y += 1;
|
||||
//out of range?
|
||||
if($this->pointer_y >= $this->height) throw new Exception("Out of range! (height)");
|
||||
}
|
||||
} //end of if
|
||||
} //end of for
|
||||
|
||||
//echo $this->pointer_x.",".$this->pointer_y."\n";
|
||||
} //end of function
|
||||
|
||||
/**
|
||||
* Writes the PNG to a file.
|
||||
* @param string $filename
|
||||
* @param int $compression 0-9
|
||||
* @return boolean
|
||||
*/
|
||||
public function writeToFile($filename, $compression) {
|
||||
return imagepng($this->image, $filename, $compression);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets height.
|
||||
* @return int
|
||||
*/
|
||||
public function getHeight() {
|
||||
return $this->height;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets width.
|
||||
* @return int
|
||||
*/
|
||||
public function getWidth() {
|
||||
return $this->width;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user