如何从通过PHP创建的新图像中查找图像类型

时间:2018-05-16 14:04:45

标签: php image

function getTitleArray(addresses, callback) {
    var titles = [];
    if (addresses.length > 1) {
        addresses.forEach((urls, index) => {

            console.log(urls.search('http'));
            if (urls.search('http://') == -1) {
                urls = 'http://' + urls;
            }

            readTitle(urls).then((title) => {
                titles.push(title);
                console.log(title);
                if((addresses.length - 1) === index) {
                    callback(null, titles);
                }               
            }, (err) => {
                callback(err)
            });
        });
    }
}

getTitleArray([], (err, titles) => {
    if(err) {
        res.status(400).send(err);
    } else {
        console.log("Title :", titles);
    }   
})

在使用上面的代码片段旋转并保存旋转的图像后,我试图抓取图像类型。

我尝试使用:

<?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);


?>

但这仍然输出错误。所以我不确定根据上面的代码获取图像类型的最佳解决方案是什么。我需要图像类型的原因是使用我创建的函数为该图像制作3个不同大小的图像,该函数需要图像类型,但我似乎无法弄清楚如何使用上面的代码段拉出图像类型

3 个答案:

答案 0 :(得分:1)

您还可以使用mime_content_type()来获取文件的内容类型。

没有开关声明:

$typeString = mime_content_type($newFilename);
$typeInt = exif_imagetype($newFilename);

答案 1 :(得分:0)

switch(exif_imagetype($newFilename)) {
    case IMAGETYPE_GIF:
$typeString = 'image/gif';
    case IMAGETYPE_JPEG:
$typeString = 'image/jpeg';
    case IMAGETYPE_PNG:
    $typeString = 'image/png';
    break;

答案 2 :(得分:0)