Hàm getimagesize() trong PHP

05/08/2022 - lượt xem
Chia sẻ
 
Rate this post

Định nghĩa.

Hàm getimagesize() trong PHP là hàm được dùng để xác định kích thước của hình ảnh. Hàm này tương thích với PHP 4, PHP 5, PHP 7.

Cú pháp.

Cú pháp hàm getimagesize() trong PHP:

getimagesize ( string $filename [, array &$imageinfo ] );

Trong đó:

  • $filename Tham số này chỉ định tệp có thông tin bạn muốn truy xuất. Nó có thể là một tệp cục bộ hoặc (tùy thuộc vào cấu hình), một tệp từ xa sử dụng một trong các luồng được hỗ trợ..
  • $imageinfo Tham số tùy chọn này được sử dụng để trích xuất thông tin bổ sung từ tệp hình ảnh. Hiện tại, tùy chọn này sẽ trả về các dấu APP APP khác nhau trong một mảng kết hợp. Một số chương trình sử dụng thẻ APP này để chỉ định thông tin trong thẻ HTML. Một điểm đánh dấu phổ biến là điểm đánh dấu APP13, được mô tả tại IPTC. Bạn có thể sử dụng hàm iptcparse () để phân tích thẻ này và nhận thông tin dễ hiểu.

Giá trị trả về của hàm.

getimagesize () xác định kích thước của bất kỳ hình ảnh được hỗ trợ nào được cung cấp và trả về kích thước, loại hình ảnh và chuỗi loại chiều cao / chiều rộng được đặt trong thẻ HTML IMG thông thường và loại nội dung HTTP tương ứng.

getimagesize () cũng có thể trả về nhiều thông tin hơn trong tham số imageinfo.

Nếu không thể truy cập vào tên tệp, getimagesize () sẽ tạo ra lỗi cấp độ E_WARNING. Nếu xảy ra lỗi trong khi đọc, getimagesize () sẽ tạo ra lỗi cấp E_NOTICE.

Hàm này bắt buộc tên tệp là một tệp hình ảnh hợp lệ. Nếu một tệp không phải hình ảnh được cung cấp, nó có thể được phát hiện không chính xác dưới dạng hình ảnh và chức năng sẽ trả về thành công, nhưng mảng có thể chứa các giá trị vô lý.

Không sử dụng getimagesize () để xác minh rằng một tệp đã cho là hình ảnh hợp lệ. Thay vào đó, hãy sử dụng một giải pháp dành cho việc này, chẳng hạn như tiện ích mở rộng FileInfo.

Lưu ý:

  • Lưu ý rằng JPC và JP2 có thể có các thành phần với độ sâu bit khác nhau. Trong trường hợp này, giá trị của “bit” là độ sâu bit lớn nhất gặp phải. Tương tự, các tệp JP2 có hỗ trợ cho nhiều dòng mã JPEG 2000. Trong trường hợp này, getimagesize() trả về các giá trị cho lần mã hóa đầu tiên gặp phải ở thư mục gốc của tệp
  • Hình ảnh GIF bao gồm một hoặc nhiều khung hình, trong đó mỗi khung hình chỉ có thể chiếm một phần của hình ảnh. Kích thước hình ảnh được báo cáo bởi getimagesize() là kích thước tổng thể (đọc từ mô tả logic của màn hình).
  • imageinfo chỉ hỗ trợ các tệp JFIF.

Ví dụ:

Ví dụ 1:  Tham khảo trên trang php.net

<?php
$size = getimagesize($filename);
$fp = fopen($filename, "rb");
if ($size && $fp) {
    header("Content-type: {$size['mime']}");
    fpassthru($fp);
    exit;
} else {
    // error
}
?>

Trong ví dụ trên các channels sẽ là 3 cho hình ảnh RGB và 4 cho hình ảnh CMYK.

Tuy nhiên, sự hiện diện của các giá trị channels và bit có thể dẫn đến nhầm lẫn. Ví dụ: hình ảnh GIF luôn sử dụng ba kênh trên mỗi pixel, nhưng số bit trên mỗi pixel không thể được tính cho hình ảnh GIF hoạt hình có bảng màu tổng thể. Nếu xảy ra lỗi, FALSE được trả về.

Ví dụ 2: Ví dụ minh họa sử dụng hàm getimagesize() để xác định size của hình ảnh.

<?php
// Calling getimagesize() function 
$image_info = getimagesize("logo.png"); 
print_r($image_info); 
?>

Kết quả của ví dụ trên

Array ( [0] => 667 
        [1] => 184 
        [2] => 3 
        [3] => width="123" height="100" 
        [bits] => 8 
        [mime] => image/png )

Ví dụ 3:

<?php 
// Calling getimagesize() function 
list($width, $height, $type, $attr) = getimagesize("logo.png"); 
   
// Displaying dimensions of the image 
echo "Width of image : " . $width . "<br>"; 
  
echo "Height of image : " . $height . "<br>"; 
  
echo "Image type :" . $type . "<br>"; 
  
echo "Image attribute :" .$attr; 
?>

Kết quả của ví dụ trên:

Width of image : 123
Height of image : 100
Image type :3
Image attribute :width="123" height="100"

Qua các ví dụ minh họa trên đã cho biết được chức năng và cách sử dụng của hàm getimagesize(), các bạn có thể tham khảo thêm các hàm liên quan khác trong php.

Hàm liên quan.

  • image_type_to_mime_type() – Đọc Mime-Type của một loại hình ảnh.
  • exif_imagetype() – Xác định loại hình ảnh.
  • exif_read_data() – Đọc các tiêu đề EXIF ​​trong hình ảnh.
  • exif_thumbnail() – Lấy hình thu nhỏ của một hình ảnh.
  • imagesx() – Trả về chiều rộng của hình ảnh.
  • imagesy() – Trả về chiều cao của hình ảnh.

Các bạn có thể xem chi tiết bài viết và tham khảo thêm nhiều hàm liên quan khác trên trang php.net.

Hi vọng với bài viết này, bạn đã hiểu rõ được chức năng và cách sử dụng của hàm getimagesize() trong PHP. Nếu bạn cảm thấy bài viết hay, ý nghĩa hãy like và chia sẻ bài viết để mọi người cùng nhau tìm hiểu nhé. Cám ơn các bạn đã ghé thăm codetutam.com

    Liên hệ với chúng tôi

    Để lại thông tin để nhận được các bài viết khác

    Rate this post

    Xem thêm nhiều bài tin mới nhất về Kiến thức

    Xem thêm