Hướng dẫn getimagesize trong php

Hàm getimagesize() trong PHP có nhiệm vụ lấy ra kích thước và các thông số liên quan của ảnh hiện tại.

getimagesize ( string $filename [, array &$imageinfo ] ) : array
  • Tham số truyền vào 
  • Giá trị trả về
  • Ví dụ minh họa
  • Ứng dụng
  • Các hàm liên quan

Tham số truyền vào 

  • $image là nguồn của ảnh được tạo ra từ một hàm tạo ảnh, như imagecreatetruecolor().
  • $to là đường dẫn lưu file khi xuất thành công, nếu $to rỗng hình ảnh sẽ được xuất trực tiếp.
  • $quality là chất lượng hình ảnh khi xuất hình.
 

Giá trị trả về

Hàm này trả về một mảng chứa các thông tin về file đó, mảng này có tối đa 7 phần tử, và không phải ảnh nào cũng có KEY changebit,  và trả về FALSE nếu file không tồn tại.

Ví dụ minh họa

';
var_dump($size);die();
echo '
'; ?>

Và kết quả trả về sẽ là

array(7) {
  [0]=>
  int(438)
  [1]=>
  int(438)
  [2]=>
  int(2)
  [3]=>
  string(24) "width="438" height="438""
  ["bits"]=>
  int(8)
  ["channels"]=>
  int(3)
  ["mime"]=>
  string(10) "image/jpeg"
}

Ứng dụng

= array("test1.jpg""test2.png");
$sizearray = array();
$count count($links);
for($i 0$i $count$i++) {
    $size getimagesize($links[$i]);
    list($width$height) = $size;
    $sizearray[$links[$i]] = array("width" => $width"height" => $height);
}
print_r($sizearray);
?>

Với ví dụ trên, trường hợp bạn muốn crop hàng loạt ảnh khi upload qua trình duyệt, bạn có thể sử dụng cách này để có thể lưu lại thông tin width height khi crop. Hoặc cũng có thể chỉ là kiểm tra kích thước ảnh khi upload lên Server.

275 || $height>275)
{
die("Hình ảnh không hợp lệ");
}
?>

Hay bạn có thể xác định kích thước ảnh muốn hiển thị theo tỷ lệ mình muốn.

 ${$max} && ${$max}){
                $alt = ($val == 'w') ? 'h' : 'w';
                $ratio = ${$alt} / ${$val};
                ${$val} = ${$max};
                ${$alt} = ${$val} * $ratio;
            }
        }

        return("image");
    }
}     
echo scaleimage($location,100,100);
?>

Các hàm liên quan

  • exif_imagetype() hàm xác định loại ảnh.
  • exif_thumbnail() hàm lấy ảnh thumb của một ảnh.
  • imagesx() hàm lấy width của ảnh.
  • imagesy() hàm lấy height của ảnh.

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

  • Định nghĩa.
  • Cú pháp.
  • Giá trị trả về của hàm.
  • Ví dụ:
  • Hàm liên quan.

Đị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

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.

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:

"; 
  
echo "Height of image : " . $height . "
"; echo "Image type :" . $type . "
"; 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