Это скрипт thumnbail, над которым я работаю, и заканчивается тем, что создает поврежденное 33-байтное изображение. Я думаю, что проблема заключается в выражении exif_imagetype if, но я не уверен. Буду признателен за любую помощь.PHP создает поврежденный thumnbail
// Original image
$filename = 'images/T' . $neutralName;
// Get dimensions of the original image
list($current_width, $current_height) = getimagesize($filename);
// The x and y coordinates on the original image where we
// will begin cropping the image
$left = 10;
$top = 5;
// This will be the final size of the image (e.g. how many pixels
// left and down we will be going)
$crop_width = 140;
$crop_height = 100;
// Resample the image
$canvas = imagecreatetruecolor($crop_width, $crop_height);
if ((exif_imagetype($_FILES['photo']['tmp_name'])) == IMAGETYPE_JPEG) {
$current_image = imagecreatefromjpeg($filename);
imagecopy($canvas, $current_image, 0, 0, $left, $top, $current_width, $current_height);
imagejpeg($canvas, $filename, 100);
} else if ((exif_imagetype($_FILES["photo"]['tmp_name'])) == IMAGETYPE_GIF) {
$current_image = imagecreatefromgif($filename);
imagecopy($canvas, $current_image, 0, 0, $left, $top, $current_width, $current_height);
imagegif($canvas, $filename, 100);
} else {
$current_image = imagecreatefrompng($filename);
imagecopy($canvas, $current_image, 0, 0, $left, $top, $current_width, $current_height);
imagepng($canvas, $filename, 100);
}
Есть ли еще код? Что вы делаете с $ canvas после этого утверждения? – mikevoermans
Что внутри этого изображения? Может быть, это 33 символа сообщения об ошибке? –
Весь код прямо там, холст определен прямо над операторами if. И да, я считаю, что есть 33 символа ошибки. Он продолжает думать, что любая картина представляет собой PNG, поэтому означает, что он не выполняет первый и второй тесты, хотя это может быть JPG. – Ramin