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?

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.


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

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.


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;

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 .


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.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.