Code Tu Tam

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

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 

 

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

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
Exit mobile version