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


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];

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 ().

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.