图像未旋转

  • 本文关键字:旋转 图像 php gd
  • 更新时间 :
  • 英文 :


好的。一段时间以来,我一直在寻找解决方案,但我似乎不明白为什么我的Debian服务器上的图像不使用PHP旋转。

$content_id = escapeQuery($_GET['id']); // escapeQuery is a function i created that removes all the nasty SQL injection methods
$sql = mysqli_query($mysqli, "SELECT * FROM images WHERE id = '$content_id'");
$data_array[] = $sql->fetch_assoc();
$image_url = $data_array[0]['file_name'];
$file_extension = explode('.', $image_url);
if (isset($_GET['rotate']) && !empty($_GET['rotate'])) {
$rotate_images = array('original', 'thumbnail', 'resized');
foreach ($rotate_images as $value) {
$filename = '/var/www/sitename.com/images/'.$value.'/' . $image_url;
$degrees = 90;
if ($file_extension[1] === 'jpg' or $file_extension[1] === 'jpeg') {
$source = imagecreatefromjpeg($filename);
$rotate = imagerotate($source, $degrees, 0);
imagejpeg($rotate);
} elseif ($file_extension[1] === 'png') {
$source = imagecreatefrompng($filename);
$rotate = imagerotate($source, $degrees, 0);
imagepng($rotate);
} elseif ($file_extension[1] === 'webp') {
$source = imagecreatefromwebp($filename);
$rotate = imagerotate($source, $degrees, 0);
imagewebp($rotate);
} elseif ($file_extension[1] === 'gif') {
$source = imagecreatefromgif($filename);
$rotate = imagerotate($source, $degrees, 0);
imagegif($rotate);
} elseif ($file_extension[1] === 'bmp') {
$source = imagecreatefrombmp($filename);
$rotate = imagerotate($source, $degrees, 0);
imagebmp($rotate);
} else {
// some action here 
}
}
imagedestroy($rotate);
// some action here 
exit;
}

我试图解决的问题:

  • 我安装了GD图形库
  • 我确保所有图像都不受更改保护
  • 尝试了大多数例子,我读了很多关于所有函数的文档

我最终自己解决了这个问题。

它没有非常清晰的文档,但要将图像保存到服务器,您必须在imagejpeg函数中定义图像的确切位置,如imagejpeg($rotate, $destination);

希望这对未来的任何人都有帮助:(

最新更新