Я новичок в GD и пытаюсь создать простой скрипт, который вращает изображение, но я получаю следующую ошибку:
Warning: imagejpeg() expects parameter 1 to be resource, boolean given in C:\wamp\www\uploading.php on line 6
Вот мой php:
$imgsrc = 'uploaded/Tulips.jpg';
$img = imagecreatefromjpeg($imgsrc);
$imgRotated = imagerotate($img,45,-1);
imagejpeg($imgRotated,"uploaded/myPicRotated.jpg",100);
что-то не так с этим?
ОБНОВИТЬ :
Я заменил -1 на 0 в imagerotate($img,45,0)
и работает нормально.
Однако я получаю черный цвет фона. Как я могу изменить его на белый цвет?
imagerotate вернул false, потому что произошла ошибка (возможно, $ imgsrc не существует?)
Попробуйте проверить $ img перед вращением:
$imgsrc = 'uploaded/Tulips.jpg';
if (file_exists($imgsrc)) {
$img = imagecreatefromjpeg($imgsrc);
if ($img !== false) {
imagealphablending($img, true);
imagesavealpha($img, true);
$imgRotated = imagerotate($img,45,-1);
if ($imgRotated !== false) {
imagejpeg($imgRotated,"uploaded/myPicRotated.jpg",100);
}
}
}
Если -1 не работает, введите 0, и вы получите черный фон.
Чтобы изменить фон на любой другой цвет, все, что вам нужно сделать, это использовать ImageColorAllocate () а также imagefill (). В моем случае я хочу, чтобы фон был белым, и вот последний код, который работал для меня:
$imgsrc = 'uploaded/Tulips.jpg';
if (file_exists($imgsrc)) {
$img = imagecreatefromjpeg($imgsrc);
if ($img !== false) {
$imgRotated = imagerotate($img,45,0);
$backgroundcolor = imagecolorallocate($imgRotated, 255, 255, 255);
imagefill($imgRotated, 0, 0, $backgroundcolor);
if ($imgRotated !== false) {
imagejpeg($imgRotated,"uploaded/myPicRotated.jpg",100);
}
}
}
Я хотел бы поблагодарить @ Пол Гирагосян за помощь.