Bitmap/Histogram: Difference between revisions
Content added Content deleted
(+ D entry) |
|||
Line 728: | Line 728: | ||
ibw( img <= m ) = 0; |
ibw( img <= m ) = 0; |
||
jpgwrite("lennamed.jpg", ibw, 100);</lang> |
jpgwrite("lennamed.jpg", ibw, 100);</lang> |
||
=={{header|PHP}}== |
|||
<lang PHP> |
|||
define('src_name', 'input.jpg'); // source image |
|||
define('dest_name', 'output.jpg'); // destination image |
|||
$img = imagecreatefromjpeg(src_name); // read image |
|||
if(empty($img)){ |
|||
echo 'Image could not be loaded!'; |
|||
exit; |
|||
} |
|||
$black = imagecolorallocate($img, 0, 0, 0); |
|||
$white = imagecolorallocate($img, 255, 255, 255); |
|||
$width = imagesx($img); |
|||
$height = imagesy($img); |
|||
$array_lum = array(); // for storage of luminosity of each pixel |
|||
$sum_lum = 0; // total sum of luminosity |
|||
$average_lum = 0; // average luminosity of whole image |
|||
for($x = 0; $x < $width; $x++){ |
|||
for($y = 0; $y < $height; $y++){ |
|||
// read pixel value |
|||
$color = imagecolorat($img, $x, $y); |
|||
$r = ($color >> 16) & 0xFF; |
|||
$g = ($color >> 8) & 0xFF; |
|||
$b = $color & 0xFF; |
|||
// save pixel luminosity in temporary array |
|||
$array_lum[$x][$y] = ($r + $g + $b); |
|||
// add pixel luminosity to sum |
|||
$sum_lum += $array_lum[$x][$y]; |
|||
} |
|||
} |
|||
// calculate average luminosity |
|||
$average_lum = $sum_lum / ($width * $height); |
|||
for($x = 0; $x < $width; $x++){ |
|||
for($y = 0; $y < $height; $y++){ |
|||
// pixel is brighter than average -> set white |
|||
// else -> set black |
|||
if($array_lum[$x][$y] > $average_lum){ |
|||
imagesetpixel($img, $x, $y, $white); |
|||
} |
|||
else{ |
|||
imagesetpixel($img, $x, $y, $black); |
|||
} |
|||
} |
|||
} |
|||
// save black and white image to dest_name |
|||
imagejpeg($img, dest_name); |
|||
if(!file_exists(dest_name)){ |
|||
echo 'Image not saved! Check permission!'; |
|||
} |
|||
</lang> |
|||
=={{header|PicoLisp}}== |
=={{header|PicoLisp}}== |