PHP обрезать изображение на большой палец и показывает черную полосу

Я знаю, что эта тема часто появляется на этом сайте, но никто, похоже, не имеет ответа на эту проблему. У меня есть скрипт, который изменяет размеры изображения, чтобы показать его в виде эскиза размером 200x200px. Изображение корректно изменяется, но когда вы посмотрите на выходное изображение, вы увидите, что реальный размер большого пальца такой же, как у оригинала, и черная полоса заполняет оставшееся пространство. Любая идея, чтобы предотвратить это и сделать реальный обрез изображения?

foreach( $images as $image ) {
$dn = dirname($image);
$thumbsDir = $dn; // path to the thumbnails destination directory

$imageName = "thumb.jpg"; // returns "cheeta.jpg"$thumbnail = $thumbsDir."/".$imageName; // thumbnail full path and name, i.e "./gallery/thumbs/cheeta.jpg"// for each image, get width and height
$imageSize = getimagesize( $image ); // image size
$imageWidth = $imageSize[0];  // extract image width
$imageHeight = $imageSize[1]; // extract image height
// set the thumb size
if( $imageHeight > $imageWidth ){
// images is portrait so set thumbnail width to 100px and calculate height keeping aspect ratio
$thumbWidth = 200;
$thumbHeight = floor( $imageHeight * ( 200 / $imageWidth ) );
$thumbPosition  = "margin-top: -" . floor( ( $thumbHeight - 200 ) / 2 ) . "px; margin-left: 0";
} else {
// image is landscape so set thumbnail height to 100px and calculate width keeping aspect ratio
$thumbHeight = 200;
$thumbWidth = floor( $imageWidth * ( 200 / $imageHeight ) );
$thumbPosition  = "margin-top: 0; margin-left: -" . floor( ( $thumbWidth - 200 ) / 2 ) . "px";
} // END else if
// verify if thumbnail exists, otherwise create it
if ( !file_exists( $thumbnail ) ){
$createFromjpeg = imagecreatefromjpeg( $image );
$thumb_temp = imagecreatetruecolor( $thumbWidth, $thumbHeight );
imagecopyresampled( $thumb_temp, $createFromjpeg, 0 - ($thumbWidth - 200) / 2, 00 - ($thumbHeight - 200) / 2, 0, 0, $thumbWidth, $thumbHeight, $imageWidth, $imageHeight );
imagejpeg( $thumb_temp, $thumbnail, 80 );
} // END if()

Спасибо за помощь!

Смотрите связанное изображение как ссылку
http://i.stack.imgur.com/U743p.jpg

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]