> 24 & 0xFF; if ($a > 0) { $r = $g = $b = 0xFF; } else { $r = $color >> 16 & 0xFF; $g = $color >> 8 & 0xFF; $b = $color & 0xFF; } $lum_data[] = floor($r * 0.299 + $g * 0.587 + $b * 0.114); } } $pixels = count($lum_data); for ($i = 0; $i < $pixels; ++$i) { $new_pixel = $lum_data[$i] < 129 ? 0 : 0xFF; $err = floor(($lum_data[$i] - $new_pixel) / 16); $lum_data[$i] = $new_pixel; if ($i + 1 < $pixels) { $lum_data[$i + 1] += $err * 7; if ($i + $w - 1 < $pixels) { $lum_data[$i + $w - 1] += $err * 3; if ($i + $w < $pixels) { $lum_data[$i + $w] += $err * 5; if ($i + $w + 1 < $pixels) $lum_data[$i + $w + 1] += $err * 1; } } } } for ($i = 0; $i < $pixels; ++$i) { $y = floor($i / $w); $x = $i - $y * $w; $c = $lum_data[$i] < 129 ? 0 : 0xFFFFFF; imageline($img, $x, $y, $x, $y, $c); } } function image_resize($img, $width, $height) { $new_img = imagecreatetruecolor($width, $height); imagecopyresampled($new_img, $img, 0, 0, 0, 0, $width, $height, imagesx($img), imagesy($img)); return $new_img; }