Ottieni l'altezza e la larghezza dell'immagine come valori interi?


98

Ho provato a utilizzare la funzione PHP getimagesize , ma non sono riuscito a estrarre la larghezza e l'altezza dell'immagine come valore intero.

Come posso raggiungere questo obiettivo?

Risposte:


197

Prova in questo modo:

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

Assicurati che:

  1. Qui si specifica il percorso corretto dell'immagine
  2. L'immagine ha accesso in lettura
  3. Chmod image dir a 755

Prova anche a aggiungere il prefisso al percorso $_SERVER["DOCUMENT_ROOT"], questo aiuta a volte quando non sei in grado di leggere i file.


2
777 sulla directory non è necessario.
colpisci il

@poke: sei davvero sicuro al 100%?
Sarfraz

5
Sì. 777 significa leggere, scrivere ed eseguire diritti per proprietario, gruppo e tutti. È necessario il diritto di lettura ed esecuzione per accedere a una directory, ma non è necessario il diritto di scrittura; e non hai nemmeno bisogno di quel diritto per tutti. 755 dovrebbe andare bene per ogni accesso in cui non è necessario creare file all'interno della directory.
colpisci il

1
È interessante per me che tu abbia bisogno dei diritti di esecuzione sulla directory ma non sull'immagine stessa (funziona con l'immagine su 644).
Lee Saxon

1
È necessario che allow_url_fopen sia attivato per poterlo utilizzare getimagesize()su immagini remote.
VertigoRay

63
list($width, $height) = getimagesize($filename)

O,

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

13

getimagesize () restituisce un array contenente le proprietà dell'immagine.

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

per ottenere solo la larghezza e l'altezza o

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

per avere qualche informazione in più.


7

Come questo :

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;

Non getimagesize() expects parameter 1 to be string, resource givenfunziona getimagesize
:, la

6

PHP getimagesize()restituisce un array di dati. I primi due elementi dell'array sono i due elementi che ti interessano: la larghezza e l'altezza. Per ottenerli, è sufficiente richiedere i primi due indici nell'array restituito:

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

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

Per ulteriori informazioni, vedere la documentazione .


3

getimagesize('image.jpg') funziona solo se allow_url_fopenè impostata su 1 o On all'interno del file php.ini sul server, se non è abilitata, si dovrebbe usare ini_set('allow_url_fopen',1); sopra il file dove viene usata la funzione getimagesize ().

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.