Wczytujesz obrazek:
$image= imagecreatefromjpeg($filename);
Funkcja sprawdzająca czy linijka jest czarna:
function sprawdź_linijkę($k){
for($i=0;$i<$w;$i++){
$rgb = imagecolorsforindex($image,imagecolorat($image, $i, $k));
if($rgb['red']>3 or $rgb['green']>3 or $rgb['blue']>3)
return False;
}
return True;
}
określasz górny i dolny margines:
$i=0;
while( sprawdź_linijkę($i)) $i++;
$górny=$i;
$i=$h-1;
while( sprawdź_linijkę($i)) $i--;
$dolny=$i;
Tworzysz nowy obrazek z częścią właściwą
header('Content-type: image/jpeg'); $image2 = imagecreatetruecolor($sze, $dolny-$górny);
imagecopyresampled($image2, $image, 0, 0, 0, $górny, $w, $dolny-$górny, $w, $dolny-$górny);
Wyświetlasz/zapisujesz obrazek:
imagejpeg($image2, $url_zapisu, 90);
imagejpeg($image2);
Pisałem na żywo, więc mogą być błędy, ale idea najważniejsza.