旋转后如何获取图像的宽度和高度?
Posted
技术标签:
【中文标题】旋转后如何获取图像的宽度和高度?【英文标题】:How to obtain width and height of image after rotating it? 【发布时间】:2013-09-04 11:15:05 【问题描述】:在 php 中使用imagerotate()
旋转图像后如何获取图像的宽度和高度?
这是我的代码:
<?php
// File and rotation
$filename = 'test.jpg';
$degrees = 180;
// Content type
header('Content-type: image/jpeg');
// Load
$source = imagecreatefromjpeg($filename);
// Rotate
$rotate = imagerotate($source, $degrees, 0);
// Output
imagejpeg($rotate);
// Free the memory
imagedestroy($source);
imagedestroy($rotate);
?>
但是在输出之前我想做的是,我想得到旋转图像的宽度和高度。我该怎么做?
【问题讨论】:
【参考方案1】:我相信你可以做类似的事情:
$data = getimagesize($filename);
$width = $data[0];
$height = $data[1];
另一个选项是这样的:
list($width, $height) = getimagesize($filename);
【讨论】:
不,这样不行。在这里发帖之前我已经尝试过了:) 那么如果它不起作用,它会做什么呢?它是否出错,是否使服务器崩溃,是否返回不正确的值?如果旋转 180 度,图像的宽度和高度不应改变 你不能在旋转它之前使用它来获取图像的高度和宽度吗? 它说“警告:getimagesize() 期望参数 1 是字符串”它在 php doc 中明确提到它必须传递图像的路径,而不是图像对象 @aslamdoctor - 你知道$filename
的值当你做$source = imagecreatefromjpeg($filename);
时使用...如果你在$data = getimagesize($filename);
中使用相同的$filename
值会得到什么,根据 BeatAlex 的建议?【参考方案2】:
imagerotate 返回一个图像资源。因此,您不能使用与图像文件一起使用的 getimagesize。 使用
$width = imagesx($rotate);
$height = imagesy($rotate);
改为。
【讨论】:
这是问题的正确答案。getimagesize()
用于旋转前原始文件的尺寸。 imagesx()
和imagesy()
用于尺寸或旋转后处理的文件。以上是关于旋转后如何获取图像的宽度和高度?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 JavaScript 获取图像大小(高度和宽度)?
如何以编程方式在 Android 中获取图像按钮的宽度和高度