Pobrać wysokość i szerokość obrazu jako wartości całkowite?

98

Próbowałem użyć funkcji PHP getimagesize , ale nie byłem w stanie wyodrębnić szerokości i wysokości obrazu jako wartości całkowitej.

Jak mogę to osiągnąć?

Mostafa Elkady
źródło

Odpowiedzi:

197

Spróbuj tak:

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

Upewnić się, że:

  1. Tam określasz poprawną ścieżkę obrazu
  2. Obraz ma prawa do odczytu
  3. Chmod image reż do 755

Spróbuj także poprzedzić ścieżkę znakiem $_SERVER["DOCUMENT_ROOT"], co czasami pomaga, gdy nie możesz odczytać plików.

Sarfraz
źródło
2
777 w katalogu nie jest potrzebne.
poke
@poke: czy naprawdę jesteś w 100% pewien?
Sarfraz
5
Tak. 777 oznacza prawo do odczytu, zapisu i wykonywania dla właściciela, grupy i wszystkich. Aby uzyskać dostęp do katalogu, potrzebujesz prawa do odczytu i wykonywania, ale nie potrzebujesz prawa do zapisu; i nie potrzebujesz tego dla wszystkich. 755 powinno wystarczyć dla każdego dostępu, w którym nie ma potrzeby tworzenia plików w katalogu.
poke
1
Ciekawe, że potrzebujesz praw do katalogu, ale nie samego obrazu (działa z obrazem na 644).
Lee Saxon,
1
Musisz włączyć allow_url_fopen, aby móc używać getimagesize()na zdalnych obrazach.
VertigoRay
63
list($width, $height) = getimagesize($filename)

Lub,

$data = getimagesize($filename);
$width = $data[0];
$height = $data[1];
davethegr8
źródło
13

getimagesize () zwraca tablicę zawierającą właściwości obrazu.

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

po prostu uzyskać szerokość i wysokość lub

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

aby uzyskać więcej informacji.

Matt
źródło
7

Lubię to :

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
źródło
Nie działa getimagesize() expects parameter 1 to be string, resource givengetimagesize
:,
6

PHP getimagesize()zwraca tablicę danych. Pierwsze dwa elementy w tablicy to dwa elementy, które Cię interesują: szerokość i wysokość. Aby je uzyskać, wystarczy poprosić o pierwsze dwa indeksy w zwróconej tablicy:

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

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

Więcej informacji można znaleźć w dokumentacji .

Sampson
źródło
3

getimagesize('image.jpg') funkcja działa tylko wtedy, gdy allow_url_fopenjest ustawiona na 1 lub On w pliku php.ini na serwerze, jeśli nie jest włączona, należy użyć ini_set('allow_url_fopen',1); na górze pliku, w którym używana jest funkcja getimagesize ().

ronforever
źródło