image brightness sys gd2

0 отговора 25 прегледа
#1

image brightness sys gd2

Zdraveite!

Znachi v momenta pisha edin klas za manipulirane na images chrez gd. Dosega napisah 5-6 funkcii za resize-vane i nqmashe problemi, a sega pisha funkciq za uvelichavane/namalqvane na brightness-a. Funkciqta si raboti, obache e otchaivashto BAVNA. Dosta chesto nadvishava max_execution_time za po-golemi kartinki. Ta vyprosa mi e: moje li da se promenq brightness-a na kartinka, po algoritym razlichen ot tozi? Osven obhojdane na kartinkata piksel po piksel, kakto go pravq po-dolu, ima li drug nachin?

<code>function Brighten ( $rate )
{
if ( $this->error )
return;

$rate = ( float ) $rate;

for ( $x = 0; $x <= $this->width; $x++ )
{
for ( $y = 0; $y <= $this->height; $y++ )
{
$rgb = ImageColorAt ( $this->img, $x, $y );
$r = ( $rgb >> 16 ) & 0xFF;
$g = ( $rgb >> 8 ) & 0xFF;
$b = $rgb & 0xFF;

list ( $r, $g, $b ) = $this->MultiplyRGB ( array ( $r, $g, $b ), $rate );
$color = ImageColorAllocate ( $this->img, $r, $g, $b );
ImageSetPixel ( $this->img, $x, $y, $color );
}
}
}
</pre>
Blagodarq predvaritelno

Отговор