Получить высоту и ширину изображения как целые значения?

98

Я пытался использовать PHP-функцию getimagesize , но мне не удалось извлечь ширину и высоту изображения в виде целого числа.

Как я могу этого добиться?

Мостафа Элькади
источник

Ответы:

197

Попробуйте вот так:

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

Удостоверься что:

  1. Вы указываете правильный путь к изображению там
  2. Изображение имеет доступ для чтения
  3. Каталог образа chmod до 755

Также попробуйте указать путь к префиксу $_SERVER["DOCUMENT_ROOT"], это иногда помогает, когда вы не можете читать файлы.

Сарфраз
источник
2
777 в справочнике не нужен.
poke
@poke: ты действительно уверен на 100%?
Sarfraz
5
Да. 777 означает право чтения, записи и выполнения для владельца, группы и всех. Для доступа к каталогу вам нужны права на чтение и выполнение, но не обязательно на запись; К тому же это право не нужно всем. 755 подойдет для любого доступа, когда вам не нужно создавать файлы внутри каталога.
poke
1
Мне интересно, что вам нужны права на выполнение для каталога, а не для самого изображения (работает с изображением на 644).
Ли Саксон
1
Вам необходимо включить allow_url_fopen, чтобы можно было использовать его getimagesize()на удаленных изображениях.
VertigoRay
64
list($width, $height) = getimagesize($filename)

Или,

$data = getimagesize($filename);
$width = $data[0];
$height = $data[1];
davethegr8
источник
13

getimagesize () возвращает массив, содержащий свойства изображения.

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

чтобы просто получить ширину и высоту или

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

чтобы получить дополнительную информацию.

Мэтт
источник
7

Как это :

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;
Жюльен
источник
Не работает:, getimagesize() expects parameter 1 to be string, resource givenфункция getimagesizeожидает имя файла
lopisan
6

PHP getimagesize()возвращает массив данных. Первые два элемента в массиве - это два элемента, которые вас интересуют: ширина и высота. Чтобы получить их, вы просто запросите первые два индекса в возвращаемом массиве:

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

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

Для получения дополнительной информации см. Документацию .

Сампсон
источник
3

getimagesize('image.jpg') функция работает, только если allow_url_fopenустановлено значение 1 или On внутри файла php.ini на сервере, если он не включен, следует использовать ini_set('allow_url_fopen',1); поверх файла, в котором используется функция getimagesize ().

ronforever
источник