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ąć?

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.


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

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.


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;

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 .


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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.