Добрый день, подскажите пожалуйста как можно реализовать данную затею, есть картинка, находиться ее большая сторона, и меньшая подгоняется под большую, получается квадрат, а потом с помощью ImageCropAuto обрезается белый фон до ближайшей границы самой картинки, и получившиеся размеры меня устраивают, но есть такие картинки которые к примеру 640х480 он дорисовывает до 640х640 и обрезает , но картинка маленькая и он ее режет до 320х320, а мне надо чтоб остановился на 500х500 подскажите как быть?
$im = imagecreatefromstring($current);
// $cropped = imagecropauto($im, IMG_CROP_SIDES);
// if ($cropped !== false) { // в случае возврата нового ресурса изображения
// imagedestroy($im); // мы уничтожаем исходное изображение
// $im = $cropped; // и назначаем обрезанное изображение в $im
// }
$width = imagesx($im);
$height = imagesy($im);
$maxSize = max($width,$height);
$kw = $width / $maxSize;
$kh = $height / $maxSize;
$k = $kw > $kh ? $kw : $kh;
$newImg = imagecreatetruecolor($maxSize, $maxSize);
$bg = imagecolorallocate($newImg, $bgColor[0], $bgColor[1], $bgColor[2]);
imagefill($newImg, 0, 0, $bg);
if($k > 1) {
$newWidth = (int) ($width / $k);
$newHeight = (int) ($height / $k);
} else {
$newWidth = $width;
$newHeight = $height;
}
$left = (int) (($maxSize - $newWidth) / 2);
$top = (int) (($maxSize - $newHeight) / 2);
imagecopyresampled($newImg, $im, $left, $top, 0, 0, $newWidth, $newHeight, $width, $height);
// $im2 = imagecrop($newImg, ['x' => 0, 'y' => 0, 'width' => 500, 'height' => 500]);
// if ($im2 !== FALSE) {
// header('Content-Type: image/jpeg');
// imagejpeg($im2);
// imagedestroy($im2);
// }
// else {
// echo 'Произошла ошибка.';
// }
header('Content-Type: image/jpeg');
imagejpeg($newImg, NULL, 100);
imagedestroy($newImg);
cropauto режет до 320х320 и центрирует правильно, а imagecrop режет при заданных 500х500 до этих размеров но не центрирует а просто режет и все. подскажите что делаю не правильно и как выйти из ситуации, спасибо за ответ.