PHP, библиотека GD, поворот изображения

Я новичок в 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)и работает нормально.
Однако я получаю черный цвет фона. Как я могу изменить его на белый цвет?

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);
}
}
}
0

Другие решения

Если -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);
}
}
}

Я хотел бы поблагодарить @ Пол Гирагосян за помощь.

0

По вопросам рекламы [email protected]