PHP

Resize hình ảnh khi upload.

Chào các  bạn!
Như các bạn đã biết đôi khi viết 1 chương trình upload hình ảnh gì đó ta không thể chỉ upload không thôi và việc resize giao cho bên nhập liệu và bên design được . Trách nhiệm của người code là phải làm sao để người nhập liệu có thể sử dụng 1 cách dể dàng nhất . Và khi upload vào thì giao diện web của chúng ta không bị dăng …
Chính vì thế nhu cầu resize lại hình ảnh khi upload là rất cần thiết . Sau đây mình tìm thấy 1 cách nhỏ để resize hình ảnh . Hôm nay đưa lên các bạn tham khảo .

<?php
$maxWidth = 800;
$maxHeight = 600;
$dir = ".";

$dh  = opendir($dir);

while (false !== ($file = readdir($dh)))
{
	$isResize = false;
	$ext = isImageFile($file);
	if($ext != false)
	{
		//creat image from filename
		$img;
		if($ext == "jpg" || $ext == "jpeg")
			$img = imagecreatefromjpeg($file);
		else if($ext == "gif")
			$img = imagecreatefromgif($file);
		else if($ext == "png")
			$img = imagecreatefrompng($file);

		$width = imagesx($img);
		$height = imagesy($img);

		//check if image needs to be resized
		if($width > $maxWidth)
		{
			$isResize = true;
			$scale = $maxWidth / $width;
			$newHeight = $height * $scale;
			$newWidth = $maxWidth;
		}
		if($height > $maxHeight)
		{
			$isResize = true;
			$scale = $maxHeight / $height;
			$newWidth = $width * $scale;
			$newHeight = $maxHeight;
		}

		///resize if isResize is true
		if($isResize)
		{
			$resizedImage = imagecreatetruecolor($newWidth, $newHeight);
			imagecopyresampled($resizedImage, $img, 0,0,0,0, $newWidth, $newHeight, $width, $height);
			if($ext == "jpg" || $ext == "jpeg")
			{
				imagejpeg($resizedImage, "tmp_" . $file);
			}
			else if($ext == "gif")
			{
				imagegif($resizedImage, "tmp_" . $file);
			}
			else if($ext == "png")
			{
				imagepng($resizedImage, "tmp_" . $file);
			}
			$fileName = $file;
			unlink($file);
			rename("tmp_" . $fileName, $fileName);
		}
	}
}

function isImageFile($file)
{
	$split = explode(".",$file);
	$last = count($split) - 1;
	$ext = strtolower($split[$last]);
	if($ext == "jpg" || $ext == "gif" || $ext == "png" || $ext == "jpeg")
		return $ext;
	else
		return false;
}

Như vậy thì chúng ta sẽ làm cho mọi khâu trở nên dể dàng hơn và tốt đẹp hơn .
Vì hầu hết các lệnh php trên đều là các lệnh cơ bản nên các bạn có thể đọc và xem lại .
Chúc các bạn may mắn !

Gửi phản hồi

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s