Нет смысла использовать getimagesize()
, когда вы уже открыли изображение с помощью imagecreatefromjpeg()
.Вы можете использовать imagesx()
и imagesy()
, чтобы получить ширину / высоту.getimagesize отделен от GD и снова откроет изображение, повторно проанализирует его и т. д.соответствующая createfrom
функция.imagecreatefromjpeg()
потерпит неудачу, если вы попытаетесь открыть что-нибудь ДРУГОЕ, чем изображение .jpg.
$obj_original_image = imagecreatefromjpeg($str_file_path);
if ($obj_original_image === FALSE) {
die("Unable to load $str_file_path. Not a jpg?");
}
etc... etc...
$status = imagecopyresampled($obj_image, $obj_original_image, 0, 0, 0, 0, $int_new_width, $int_new_height, $int_width, $int_height);
if ($status === FALSE) {
die("imagecopyresampled failed!");
}
Также добавьте некоторую отладку в ваши вычисления высоты / ширины - выведите значения, которые вы генерируете.Может быть, один или несколько из них получаются как 0, так что вы в конечном итоге ресэмплируете до несуществующего размера.