Как найти тип изображения из нового изображения, созданного с помощью PHP - PullRequest
0 голосов
/ 16 мая 2018
<?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';
// $newFile = 'img_'.$item.'.jpg';

$newFileName = $server_root.$folder.$newFile;


imagejpeg($rotate, $imagePath);


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


?>

Я пытаюсь получить тип изображения после использования приведенного выше фрагмента кода для поворота и сохранения этого повернутого изображения.

Я пытался использовать:

$typeString = null;
$typeInt = exif_imagetype($newFilename);
switch($typeInt) {
  case IMG_GIF:
    $typeString = 'image/gif';
    break;
  case IMG_JPG:
    $typeString = 'image/jpg';
    break;
  case IMG_JPEG:
    $typeString = 'image/jpeg';
    break;
  case IMG_PNG:
    $typeString = 'image/png';
    break;
  case IMG_WBMP:
    $typeString = 'image/wbmp';
    break;
  case IMG_XPM:
    $typeString = 'image/xpm';
    break;
  default:
    $typeString = 'unknown';
}

Но это продолжало выдавать ошибку.Поэтому я не уверен, что является лучшим решением для захвата типа изображения на основе приведенного выше кода.Причина, по которой мне нужен тип изображения, заключается в том, что я использовал созданную мной функцию для создания трех изображений разного размера для этого изображения, и для этой функции требуется тип изображения, но я не могу понять, как вытащить тип изображения, используя приведенный выше фрагмент.

Ответы [ 3 ]

0 голосов
/ 16 мая 2018
0 голосов
/ 16 мая 2018

Вы также можете использовать mime_content_type() для получения типа содержимого файла.

Без оператора switch:

$typeString = mime_content_type($newFilename);
$typeInt = exif_imagetype($newFilename);
0 голосов
/ 16 мая 2018
switch(exif_imagetype($newFilename)) {
    case IMAGETYPE_GIF:
$typeString = 'image/gif';
    case IMAGETYPE_JPEG:
$typeString = 'image/jpeg';
    case IMAGETYPE_PNG:
    $typeString = 'image/png';
    break;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...