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
change và
bit, 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);
?>
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
Bình luận: