Hàm getimagesize() trong PHP là gì ?

12/08/2020 - lượt xem
Chia sẻ
 
Rate this post
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 

  • $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

<?php
$size = getimagesize("example_crop.jpg");

echo '<pre>';
var_dump($size);die();
echo '</pre>';

?>
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

<?php
$links = 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);
// Array ( [test1.jpg] => Array ( [width] => 300 [height] => 400 ) [test2.png] => Array ( [width] => 680 [height] => 100 ) )
?>
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.
<?php

$tmpName = $_FILES['userfile']['tmp_name'];   
list($width, $height, $type, $attr) = getimagesize($tmpName);
if($width>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.
<?php
$location = 'example-cropped.png';
function scaleimage($location, $maxw=NULL, $maxh=NULL){
    $img = @getimagesize($location);
    if($img){
        $w = $img[0];
        $h = $img[1];

        $dim = array('w','h');
        foreach($dim AS $val){
            $max = "max{$val}";
            if(${$val} > ${$max} && ${$max}){
                $alt = ($val == 'w') ? 'h' : 'w';
                $ratio = ${$alt} / ${$val};
                ${$val} = ${$max};
                ${$alt} = ${$val} * $ratio;
            }
        }

        return("<img src='{$location}' alt='image' width='{$w}' height='{$h}' />");
    }
}     
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

    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