Есть код, который добавляет эффекты изображению(черно-белый, сепия, и много других), но отрабатывает он секунд 5-6. Как можно уменьшить время работы скрипта?
| Код | function toGreyScale($input_image) { $image = imagecreatefromjpeg($input_image); $x_dimension = imagesx($image); $y_dimension = imagesy($image); $new_image = imagecreatetruecolor($x_dimension, $y_dimension);
for ($x = 0; $x < $x_dimension; $x++) { for ($y = 0; $y < $y_dimension; $y++) { $rgb = rgb(imagecolorat($image, $x, $y));
$b = ($rgb[0] + $rgb[1] + $rgb[2]) / 3; $b = 255 * (($b / 255 - .5) * 1.3 + .5); $b = $b < 0 ? 0 : $b > 255 ? 255 : $b; $color = imagecolorallocate($image, $b, $b, $b); imagesetpixel($new_image, $x, $y, $color); }
} return $new_image; } function rgb($rgb) { $r = ($rgb >> 16) & 255; $g = ($rgb >> 8) & 255; $b = $rgb & 255; return array($r, $g, $b); } $i = toGreyScale('111.jpg'); header('Content-type: image/jpeg'); imagejpeg($i);
|
|