Nhận Chiều cao và Chiều rộng hình ảnh dưới dạng giá trị số nguyên?


97

Tôi đã cố gắng sử dụng hàm getimagesize trong PHP , nhưng tôi không thể trích xuất chiều rộng và chiều cao của hình ảnh dưới dạng giá trị số nguyên.

Làm thế nào tôi có thể đạt được điều này?

Câu trả lời:


196

Hãy thử như thế này:

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

Đảm bảo rằng:

  1. Bạn chỉ định đường dẫn hình ảnh chính xác ở đó
  2. Hình ảnh có quyền đọc
  3. Chmod hình ảnh dir đến 755

Cũng cố gắng đặt tiền tố đường dẫn bằng $_SERVER["DOCUMENT_ROOT"], điều này đôi khi hữu ích khi bạn không thể đọc tệp.


2
777 trên thư mục là không cần thiết.
poke

@poke: bạn có thực sự chắc chắn 100% không?
Sarfraz

5
Đúng. 777 có nghĩa là quyền đọc, viết và thực thi cho chủ sở hữu, nhóm và tất cả. Bạn cần quyền đọc và thực thi để truy cập một thư mục, nhưng bạn không cần quyền ghi; và bạn cũng không cần quyền đó cho tất cả mọi người. 755 sẽ ổn cho mọi truy cập mà bạn không cần tạo tệp bên trong thư mục.
poke

1
Điều thú vị đối với tôi là bạn cần quyền thực thi trên thư mục nhưng không phải bản thân hình ảnh (hoạt động với hình ảnh trên 644).
Lee Saxon

1
Bạn cần bật allow_url_fopen để có thể sử dụng getimagesize()trên các hình ảnh từ xa.
VertigoRay

63
list($width, $height) = getimagesize($filename)

Hoặc là,

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

13

getimagesize () trả về một mảng chứa các thuộc tính hình ảnh.

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

để chỉ lấy chiều rộng và chiều cao hoặc

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

để có thêm một số thông tin.


7

Như thế này :

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;

Đừng làm việc: getimagesize() expects parameter 1 to be string, resource given, chức năng getimagesizehy vọng filename
lopisan

6

PHP getimagesize()trả về một mảng dữ liệu. Hai mục đầu tiên trong mảng là hai mục bạn quan tâm: chiều rộng và chiều cao. Để có được những thứ này, bạn chỉ cần yêu cầu hai chỉ mục đầu tiên trong mảng được trả về:

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

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

Để biết thêm thông tin, hãy xem tài liệu .


3

getimagesize('image.jpg') Hàm chỉ hoạt động nếu allow_url_fopenđược đặt thành 1 hoặc Bật bên trong tệp php.ini trên máy chủ, nếu nó không được bật, người ta nên sử dụng ini_set('allow_url_fopen',1); trên đầu tệp nơi hàm getimagesize () được sử dụng.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.