[TASK] Improved performance by creating a lookup-table for the colorindex to rgb function.
This commit is contained in:
parent
b74c814e3f
commit
417f7a54f5
|
@ -5,6 +5,19 @@
|
|||
*/
|
||||
class CharColorConverter {
|
||||
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
protected $colortable;
|
||||
|
||||
/**
|
||||
* Default constructor.
|
||||
* @return void
|
||||
*/
|
||||
public function __construct() {
|
||||
$this->buildColorTable();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns an array with RGB for the corresponding index.
|
||||
* @param int $index Index from 0 to 1530. (Everything above will result the same)
|
||||
|
@ -34,6 +47,17 @@ class CharColorConverter {
|
|||
return array($r, $g, $b);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates the colortable.
|
||||
* @return void
|
||||
*/
|
||||
protected function buildColorTable() {
|
||||
$this->colortable = array();
|
||||
for($i = 0; $i <= 1275; $i++) {
|
||||
$this->colortable[$i] = $this->index2rgb($i);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts a single char to a string.
|
||||
* @param string $string
|
||||
|
@ -42,7 +66,7 @@ class CharColorConverter {
|
|||
public function charToColor($string) {
|
||||
if(strlen($string) === 0) throw new Exception("Empty string given!");
|
||||
$index = ord($string) * 5;
|
||||
$color = $this->index2rgb($index);
|
||||
$color = $this->colortable[$index];
|
||||
return $color;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -20,7 +20,9 @@ class FileImageConverter {
|
|||
* @return void
|
||||
*/
|
||||
public function __construct() {
|
||||
echo "\nInitializing color translation table...";
|
||||
$this->colorConverter = new CharColorConverter();
|
||||
echo "done.\n";
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue