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?

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.


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

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.


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;

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 .


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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.