Bildhöhe und -breite als ganzzahlige Werte abrufen?

97

Ich habe versucht, die PHP-Funktion getimagesize zu verwenden , konnte jedoch die Bildbreite und -höhe nicht als ganzzahligen Wert extrahieren.

Wie kann ich das erreichen?

Mostafa Elkady
quelle

Antworten:

196

Versuchen Sie es so:

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

Stelle sicher das:

  1. Dort geben Sie den richtigen Bildpfad an
  2. Das Bild hat Lesezugriff
  3. Chmod Bildverzeichnis auf 755

Versuchen Sie auch, den Pfad mit einem Präfix zu versehen $_SERVER["DOCUMENT_ROOT"]. Dies hilft manchmal, wenn Sie keine Dateien lesen können.

Sarfraz
quelle
2
777 im Verzeichnis wird nicht benötigt.
Poke
@poke: bist du dir wirklich 100% sicher?
Sarfraz
5
Ja. 777 bedeutet Lese-, Schreib- und Ausführungsrecht für Eigentümer, Gruppe und alle. Sie benötigen Lese- und Ausführungsrechte, um auf ein Verzeichnis zugreifen zu können, aber Sie benötigen keine Schreibrechte. und das braucht man auch nicht für alle. 755 sollte für jeden Zugriff geeignet sein, bei dem Sie keine Dateien im Verzeichnis erstellen müssen.
stupsen
1
Interessant für mich, dass Sie Ausführungsrechte für das Verzeichnis benötigen, aber nicht für das Image selbst (funktioniert mit dem Image auf 644).
Lee Saxon
1
Sie müssen allow_url_fopen aktiviert haben , um getimagesize()Remote-Images verwenden zu können.
VertigoRay
63
list($width, $height) = getimagesize($filename)

Oder,

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

getimagesize () gibt ein Array zurück, das die Bildeigenschaften enthält.

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

um nur die Breite und Höhe zu bekommen oder

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

um weitere Informationen zu erhalten.

Matt
quelle
7

So was :

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
quelle
getimagesize() expects parameter 1 to be string, resource givenFunktioniert nicht : , Funktion getimagesizeerwartet Dateiname
Lopisan
6

PHPs geben getimagesize()ein Array von Daten zurück. Die ersten beiden Elemente im Array sind die beiden Elemente, an denen Sie interessiert sind: Breite und Höhe. Um diese zu erhalten, fordern Sie einfach die ersten beiden Indizes im zurückgegebenen Array an:

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

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

Weitere Informationen finden Sie in der Dokumentation .

Sampson
quelle
3

getimagesize('image.jpg') Die Funktion funktioniert nur allow_url_fopen, wenn sie in der Datei php.ini auf dem Server auf 1 oder On gesetzt ist. Wenn sie nicht aktiviert ist, sollte sie ini_set('allow_url_fopen',1); über der Datei verwendet werden, in der die Funktion getimagesize () verwendet wird.

für immer
quelle