109

I've tried to use the PHP function getimagesize, but I was unable to extract the image width and height as an integer value.

How can I achieve this?

0

6 Answers 6

219

Try like this:

list($width, $height) = getimagesize('path_to_image');

Make sure that:

  1. You specify the correct image path there
  2. The image has read access
  3. Chmod image dir to 755

Also try to prefix path with $_SERVER["DOCUMENT_ROOT"], this helps sometimes when you are not able to read files.

Sign up to request clarification or add additional context in comments.

7 Comments

777 on directory is not needed.
@poke: are you really 100% sure?
Yes. 777 means read, write and execute right for owner, group, and all. You need read and execute right to access a directory, but you don't need write right; and you also don't need that right for everybody. 755 should be fine for every access where you don't need to create files inside of the directory.
Interesting to me that you need execute rights on the directory but not the image itself (works with the image on 644).
You need allow_url_fopen turned on to be able to use getimagesize() on remote images.
|
69
list($width, $height) = getimagesize($filename)

Or,

$data = getimagesize($filename);
$width = $data[0];
$height = $data[1];

Comments

15

getimagesize() returns an array containing the image properties.

list($width, $height) = getimagesize("path/to/image.jpg");

to just get the width and height or

list($width, $height, $type, $attr)

to get some more information.

Comments

8

Like this :

imageCreateFromPNG($var);
//I don't know where from you get your image, here it's in the png case
// and then :
list($width, $height) = getimagesize($image);
echo $width;
echo $height;

1 Comment

Don't work: getimagesize() expects parameter 1 to be string, resource given, function getimagesize expects filename
6

PHP's getimagesize() returns an array of data. The first two items in the array are the two items you're interested in: the width and height. To get these, you would simply request the first two indexes in the returned array:

var $imagedata = getimagesize("someimage.jpg");

print "Image width  is: " . $imagedata[0];
print "Image height is: " . $imagedata[1];

For further information, see the documentation.

Comments

6

getimagesize('image.jpg') function works only if allow_url_fopen is set to 1 or On inside php.ini file on the server, if it is not enabled, one should use ini_set('allow_url_fopen',1); on top of the file where getimagesize() function is used.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.