Dapatkan Tinggi dan Lebar Gambar sebagai nilai integer?

98

Saya telah mencoba menggunakan fungsi getimagesize PHP , tetapi saya tidak dapat mengekstrak lebar dan tinggi gambar sebagai nilai integer.

Bagaimana saya bisa mencapai ini?

Mostafa Elkady
sumber

Jawaban:

197

Coba seperti ini:

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

Pastikan bahwa:

  1. Anda menentukan jalur gambar yang benar di sana
  2. Gambar memiliki akses baca
  3. Ubah gambar dir ke 755

Coba juga untuk mengawali jalur dengan $_SERVER["DOCUMENT_ROOT"], ini terkadang membantu ketika Anda tidak dapat membaca file.

Sarfraz
sumber
2
777 pada direktori tidak diperlukan.
aduk
@ Poke: apakah Anda benar-benar 100% yakin?
Sarfraz
5
Iya. 777 artinya membaca, menulis dan melaksanakan hak untuk pemilik, kelompok, dan semua. Anda perlu membaca dan menjalankan hak untuk mengakses direktori, tetapi Anda tidak perlu menulis dengan benar; dan Anda juga tidak membutuhkan hak itu untuk semua orang. 755 seharusnya baik-baik saja untuk setiap akses di mana Anda tidak perlu membuat file di dalam direktori.
aduk
1
Menarik bagi saya bahwa Anda perlu menjalankan hak pada direktori tetapi bukan gambar itu sendiri (bekerja dengan gambar pada 644).
Lee Saxon
1
Anda perlu mengaktifkan allow_url_fopen agar dapat menggunakan getimagesize()gambar jarak jauh.
VertigoRay
63
list($width, $height) = getimagesize($filename)

Atau,

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

getimagesize () mengembalikan larik yang berisi properti gambar.

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

untuk hanya mendapatkan lebar dan tinggi atau

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

untuk mendapatkan informasi lebih lanjut.

Matt
sumber
7

Seperti ini :

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
sumber
Tidak getimagesize() expects parameter 1 to be string, resource givenberfungsi getimagesize
:,
6

PHP getimagesize()mengembalikan array data. Dua item pertama dalam larik adalah dua item yang Anda minati: lebar dan tinggi. Untuk mendapatkannya, Anda cukup meminta dua indeks pertama dalam array yang dikembalikan:

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

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

Untuk informasi lebih lanjut, lihat dokumentasi .

Sampson
sumber
3

getimagesize('image.jpg') Fungsi bekerja hanya jika allow_url_fopendiatur ke 1 atau On di dalam file php.ini di server, jika tidak diaktifkan, seseorang harus menggunakan ini_set('allow_url_fopen',1); di atas file di mana fungsi getimagesize () digunakan.

ronforever
sumber