update page now

Voting

: nine minus nine?
(Example: nine)

The Note You're Voting On

pj dot mueller at protonmail dot ch
3 years ago
I don’t know why you can’t set the threshold for the four sides filter (IMG_CROP_SIDES) so here’s how to do it manually using the IMG_CROP_THRESHOLD filter instead.

$threshold = .5;

$im = imagecreatefromjpeg('somefile.jpg');

$width = imagesx($im);
$height = imagesy($im);

$arr = [
    [0,0],
    [$width-1,0],
    [0,$height-1],
    [$width-1,$height-1],
];

$red = 0;
$green = 0;
$blue = 0;

// grab the colours from all four corners
foreach( $arr as $arr2 ) {
    $thisColor = imagecolorat($im, $arr2[0], $arr2[1]); 

    $rgb = imagecolorsforindex($im, $thisColor); 
    $red += round(round(($rgb['red'] / 0x33)) * 0x33); 
    $green += round(round(($rgb['green'] / 0x33)) * 0x33); 
    $blue += round(round(($rgb['blue'] / 0x33)) * 0x33); 
}

// and average them
$red /= 4;
$green /= 4;
$blue /= 4;

$newColor = imagecolorallocate($im, $red, $green, $blue);            

$cropped = imagecropauto($im, IMG_CROP_THRESHOLD, $threshold, $newColor);

imagejpg($cropped, 'somefile.cropped.jpg');

imagedestroy($im);
imagedestroy($cropped);

<< Back to user notes page

To Top