Non so se c'è qualcosa di già pronto, se comunque il bordo bianco è "spesso" uguale su tutti e 4 i lati non è neanche troppo difficile creare una funzione ad hoc, un pò più complicato se ogni lato ha un eccedenza di bianco diversa.
Giusto per indirizzarti su come affronterei io il problema (cerca prima se c'è già qualche libreria pronta)
Intanto devi sapere le dimensioni dell'immagine
Tramite le librerie GD puoi ,con poche righe di codice, sapere il codice esadecimale di un determinato pixelCodice PHP:$arr = getimagesize('immagine');
Ora tramite dei cicli non dovrebbe essere difficile trovare qual'è la prima "riga", partendo dall'alto, che non contiene solo biancoCodice PHP:$x = 0; // Pixel sull'asse X
$y = 0; // Pixel sull'asse Y
$image = imagecreatefromgif("test.gif");
$arr = imagecolorat($image, $x ,$y);
extract(imagecolorsforindex($image, $arr));
$color = sprintf('#%02X%02X%02X', $red, $green, $blue);
// echo $color; restituirà #FFFFFF se c'è un bordo bianco
Esempio di utilizzo
questo va bene se come detto i lati bianchi hanno lo stesso spessore.Codice PHP:<?php
function getHEX($image, $x, $y)
{
$arr = imagecolorat($image, $x ,$y);
extract(imagecolorsforindex($image, $arr));
return sprintf('#%02X%02X%02X', $red, $green, $blue);
}
$image = imagecreatefromgif("test.gif");
$arr = getimagesize("test.gif");
$width = $arr[0];
$height = $arr[1];
for($y = 0; $y < $height; $y++)
{
for($x = 0; $x < $width; $x++)
{
if(getHEX($image, $x, $y) != "#FFFFFF")
die("Altezza bordo bianco: {$y} pixel");
}
}
?>
dopo che sai quanto è il bordo bianco devi usare imagecopyresized() per tagliare l'immagine.
Questo giusto per indirizzarti, poi vedi un pò te![]()

Rispondi quotando