0

我正在尝试将图像的宽度和高度回显到我拥有的循环数组中。除了宽度和高度之外的所有东西似乎都在那里。图像显示在我拥有的轮播中。为了让轮播正常工作,它喜欢拥有图像的宽度和高度。我不想输入手动值并扭曲图像!

这是我的代码片段。

 <?php do {
 $image = $_SERVER['DOCUMENT_ROOT'].$row_rs_imgpath['userimagespath'].$row_rs_smimg['thumbfile'];
 $x= imagesx($image);
 $y = imagesy($image);

 ?>


    <img src="<?php echo $row_rs_imgpath['userimagespath'].$row_rs_smimg['thumbfile']; ?>" alt="<?php echo $row_rs_smimg['imgname']; ?>" width="<?php echo $x;?>" height="<?php echo $y;?>" />


 <?php } while ($row_rs_smimg = mysql_fetch_assoc($rs_smimg)); ?>

当您查看页面源代码时,您会得到以下信息:

<img src="/images/uploads/my-future-car-1358783315_thumb.jpg"width="" height="" />
<img src="/images/uploads/albert_docks_liverpool-1358872736_thumb.jpg" width="" height="" />

我也试过

list($width, $height)= getimagesize($image);

但这也不起作用。任何想法,将不胜感激!

4

4 回答 4

1

使用getimagesize()时,您是否尝试使用文件的完整路径?当它找不到图像时,它不起作用。

于 2013-01-22T19:05:14.907 回答
1

你的电流$image是一个字符串。您尝试使用的函数旨在用于 GD 库中的资源。

如果您只需要尺寸,更简单的方法是根本不使用 GD 库(这对于您正在做的事情来说太过分了)。我建议使用getimagesize. http://php.net/manual/en/function.getimagesize.php

$size = getimagesize($filename);
echo $size[0]; //width
echo $size[1]; //height
于 2013-01-22T19:09:24.567 回答
0

imagesximagesy处理图像资源,而不是文件名。那行代码getimagesize是正确的,但是您处理图像的方式只能在浏览器中工作,而不是在文件系统中。

/images/image.gif将在浏览器中工作,但您需要相对路径 ( ../../images/image.gif) 或文件系统特定路径 ( /users/joe/www/images/image.gif) 才能让getimagesize函数找到正确的文件。

于 2013-01-22T19:05:27.833 回答
0

从 Image 对象获取图像大小:

$source = imagecreatefrompng(...);
$width = imagesx($source);
$height = imagesy($source);

对于imagesximagesy函数,您需要传递资源,而不是像您正在做的字符串。

从路径获取图像大小:

$size= getimagesize('sample-image.jpg');
$width = $gis[1];
$height = $gis[1];

或者

list($width, $height) = getimagesize($filename)
于 2013-01-22T19:11:45.280 回答