Ну, это чистая математика. Вы хотите достичь размера 99x75, и вы хотите вырезать только из ширины. Итак, во-первых, вы изменяете размер, чтобы соответствовать высоте. Это то, что вы сделали, но сделали это, чтобы соответствовать высоте 75. Переключите его на 99. Затем проверьте ширину <= 75. Если это не так, вы сделаете это: </p>
if( $imgW > 75 )
{
$diff = $imgw - 75; // this is what's extra
$srcX = ceil( $diff / 2 ); // this is where your img starts from
$imgW = 75;
}
imagecopyresampled($thumb, $source, 0, 0, $srcX, 0, $imgW, $imgH, $origWidth, $origHeight); // notice that src X changed accordingly.
Итак, если ширина после первого «изменения размера» равна 100, а вы хотите 75, вы вычисляете diff = 25, делите его на 2 и получаете значение => 13, тогда вы говорите функции GD начать копирование изображения от 13, а не от 0, и все равно держите 75 высоту. Это означает, что он будет копировать с ширины 13 до 88 => центра.
Надеюсь, это то, что вы хотели.
С Уважением,
Gabriel