22 lines
625 B
PHP
22 lines
625 B
PHP
class BitmapGrayscale extends Bitmap {
|
|
public function toGrayscale(){
|
|
for ($i = 0; $i < $this->h; $i++){
|
|
for ($j = 0; $j < $this->w; $j++){
|
|
$l = ($this->data[$j][$i][0] * 0.2126)
|
|
+ ($this->data[$j][$i][1] * 0.7152)
|
|
+ ($this->data[$j][$i][2] * 0.0722);
|
|
$l = round($l);
|
|
$this->data[$j][$i] = array($l,$l,$l);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
$b = new BitmapGrayscale(16,16);
|
|
$b->fill(0,0,null,null, array(255,255,0));
|
|
$b->setPixel(0, 15, array(255,0,0));
|
|
$b->setPixel(0, 14, array(0,255,0));
|
|
$b->setPixel(0, 13, array(0,0,255));
|
|
$b->toGrayscale();
|
|
$b->writeP6('p6-grayscale.ppm');
|