Как использовать PHP для поворота изображений в формате PNG - PullRequest
0 голосов
/ 17 мая 2018

Так что сейчас я использую PHP для добавления функции поворота к изображениям.В настоящее время он настроен на работу только с JPEG, но мне нужно разрешить ему работать с файлами изображений PNG и GIF.PNG тем важнее.Итак, в настоящее время мой код:

<?php

include_once('../classes/sitewide-functions.php');

$server_root = $_SERVER['DOCUMENT_ROOT'];

$auction = $_GET['auction'];
$item = $_GET['item'];
$dir = $_GET['dir'];
$img = urldecode($_GET['img']);

$image = explode('/',$img);
//parse out the file name
$folder = '/'.$image[3].'/';

$file = $image[4];
$image = $folder.$file;
$imagePath = $server_root.$image;

//set the correct direction
if ($dir == 'ccw') {
    $degrees = 90;
} else {
    $degrees = '270';
}
$source = imagecreatefromjpeg($imagePath);

$rotate = imagerotate($source, $degrees, 0);



//delete the old file
unlink($imagePath);
$newFile = 'img_'.$item.'_'.time().'.jpg';


$imageStatus = imagejpeg($rotate, $imagePath);


$typeString = null;
$typeInt = exif_imagetype($imagePath);
switch($typeInt) {
    case IMAGETYPE_GIF:
$typeString = 'image/gif';
        break;
    case IMAGETYPE_JPEG:
$typeString = 'image/jpeg';
        break;
    case IMAGETYPE_PNG:
    $typeString = 'image/png';
    break;
  default:
    $typeString = 'unknown';
}


$imageSize = getimagesize($imagePath);

$imageFileSize = filesize($imagePath);

imagedestroy($source);
imagedestroy($rotate);

$newImage = array(
    "name" => array(
    0 => $file,
    ),
    "type" => array(
        0 => $typeString,
    ),
    "tmp_name" => array(
        0 => $imagePath,
    ),
    "error" => array(
        0 => $imageStatus,
    ),
    "size" => array(
        0 => $imageFileSize,
    )
);

processImageSizes($imagePath); ?>

Так что это было у меня сейчас, и это работает для изображений JPEG.Я попытался добавить случай переключения для функций PHP imagecreatefromjpeg и imagejpeg, но когда я добавил их, это привело к тому, что страница перестала работать.Поэтому я не был уверен, что следующий шаг нужно сделать, чтобы этот фрагмент кода работал для png и gif.

РЕДАКТИРОВАТЬ: ошибка, которую я получаю на мертвой странице: HTTP ERROR 500

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...