Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中检索图像方向_Php_Image_Orientation - Fatal编程技术网

在PHP中检索图像方向

在PHP中检索图像方向,php,image,orientation,Php,Image,Orientation,如何在PHP中获取图像(JPEG或PNG)的图像方向(横向或纵向) 我创建了一个php网站,用户可以上传图片。在我将它们缩小到更小的尺寸之前,我想知道图像是如何定位的,以便正确地进行缩放 谢谢你的回答 简单。只需检查宽度和高度,并进行比较,以确定方向。然后相应地调整大小。直截了当地说。如果您试图保持纵横比,但要放入某个方形框中,您可以使用以下内容: public static function fit_box($box = 200, $x = 100, $y = 100) { $scale

如何在PHP中获取图像(JPEG或PNG)的图像方向(横向或纵向)

我创建了一个php网站,用户可以上传图片。在我将它们缩小到更小的尺寸之前,我想知道图像是如何定位的,以便正确地进行缩放


谢谢你的回答

简单。只需检查宽度和高度,并进行比较,以确定方向。然后相应地调整大小。直截了当地说。如果您试图保持纵横比,但要放入某个方形框中,您可以使用以下内容:

public static function fit_box($box = 200, $x = 100, $y = 100)
{
  $scale = min($box / $x, $box / $y, 1);
  return array(round($x * $scale, 0), round($y * $scale, 0));
}

我想您可以检查图像宽度是否大于横向的长度,如果长度大于宽度,则检查纵向的长度

您可以通过一个简单的
IF/ELSE
语句来实现这一点

您还可以使用函数:
Imagick::getImageOrientation


我使用一种通用的缩小算法,如

   function calculateSize($width, $height){

            if($width <= maxSize && $height <= maxSize){
                $ratio = 1;
            } else if ($width > maxSize){
                $ratio = maxSize/$width;
                } else{
                    $ratio = maxSize/$height;
                    }

        $thumbwidth =  ($width * $ratio);
        $thumbheight = ($height * $ratio);
        }
函数calculateSize($width,$height){
如果($width我总是这样做:

list($width, $height) = getimagesize('image.jpg');
if ($width > $height) {
    // Landscape
} else {
    // Portrait or Square
}

我正在使用这个速记。分享只是为了防止有人需要一行解决方案

$orientation = ( $width != $height ? ( $width > $height ? 'landscape' : 'portrait' ) : 'square' );
首先检查图像是否为1:1(正方形)。如果不是,则确定方向(横向/纵向)


我希望有人会觉得这很有帮助。

这不是jpg/png规范的一部分。它们只是像素网格。你可以检查图像是否宽于高,但这并不意味着太多。EXIF数据确实包含定向数据。
$orientation = ( $width != $height ? ( $width > $height ? 'landscape' : 'portrait' ) : 'square' );