Obter altura e largura da imagem como valores inteiros?

98

Tentei usar a função getimagesize do PHP , mas não consegui extrair a largura e a altura da imagem como um valor inteiro.

Como posso conseguir isso?

Mostafa Elkady
fonte

Respostas:

197

Tente assim:

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

Certifique-se de que:

  1. Você especifica o caminho correto da imagem lá
  2. A imagem tem acesso de leitura
  3. Chmod imagem dir para 755

Também tente prefixar o caminho com $_SERVER["DOCUMENT_ROOT"], isso ajuda às vezes quando você não consegue ler os arquivos.

Sarfraz
fonte
2
777 no diretório não é necessário.
cutucar
@poke: você tem mesmo 100% de certeza?
Sarfraz
5
Sim. 777 significa ler, escrever e executar direito para o proprietário, grupo e todos. Você precisa ler e executar corretamente para acessar um diretório, mas não precisa escrever corretamente; e você também não precisa desse direito para todos. 755 deve ser adequado para cada acesso onde você não precisa criar arquivos dentro do diretório.
cutucar
1
É interessante que você precise executar direitos no diretório, mas não na imagem em si (funciona com a imagem no 644).
Lee Saxon
1
Você precisa de allow_url_fopen ativado para poder usar getimagesize()em imagens remotas.
VertigoRay
63
list($width, $height) = getimagesize($filename)

Ou,

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

getimagesize () retorna um array contendo as propriedades da imagem.

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

para obter apenas a largura e altura ou

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

para obter mais informações.

Matt
fonte
7

Como isso :

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;
Julien
fonte
Não getimagesize() expects parameter 1 to be string, resource givenfunciona getimagesize
:, a
6

PHP getimagesize()retorna um array de dados. Os primeiros dois itens na matriz são os dois itens nos quais você está interessado: a largura e a altura. Para obtê-los, você simplesmente solicitaria os dois primeiros índices na matriz retornada:

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

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

Para mais informações, consulte a documentação .

Sampson
fonte
3

getimagesize('image.jpg') função funciona apenas se allow_url_fopen estiver definida como 1 ou On dentro do arquivo php.ini no servidor, se não estiver habilitada, deve-se usar ini_set('allow_url_fopen',1); na parte superior do arquivo onde a função getimagesize () é usada.

ronforever
fonte