quang cao hosting

Resizing images trong PHP

Xem: 1385    Tải: 0   Thảo luận: 0   Mục: Php&mySql   Lĩnh vực: none

7 điểm   ( 7 đánh giá ) File đã được kiểm thử

Mình xin giới thiệu với các bạn bài viết Tạo thumnail hình ảnh bằng PHP cho website của bạn.

SimpleImage.php

<?php
class SimpleImage {
var $image;
var $image_type;
function load($filename) {
$image_info = getimagesize($filename);
$this->image_type = $image_info[2];
if( $this->image_type == IMAGETYPE_JPEG ) {
$this->image = imagecreatefromjpeg($filename);
} elseif( $this->image_type == IMAGETYPE_GIF ) {
$this->image = imagecreatefromgif($filename);
} elseif( $this->image_type == IMAGETYPE_PNG ) {
$this->image = imagecreatefrompng($filename);
}
}
function save($filename, $image_type=IMAGETYPE_JPEG, $compression=75, $permissions=null) {
if( $image_type == IMAGETYPE_JPEG ) {
imagejpeg($this->image,$filename,$compression);
} elseif( $image_type == IMAGETYPE_GIF ) {
imagegif($this->image,$filename);
} elseif( $image_type == IMAGETYPE_PNG ) {
imagepng($this->image,$filename);
}
if( $permissions != null) {
chmod($filename,$permissions);
}
}
function output($image_type=IMAGETYPE_JPEG) {
if( $image_type == IMAGETYPE_JPEG ) {
imagejpeg($this->image);
} elseif( $image_type == IMAGETYPE_GIF ) {
imagegif($this->image);
} elseif( $image_type == IMAGETYPE_PNG ) {
imagepng($this->image);
}
}
function getWidth() {
return imagesx($this->image);
}
function getHeight() {
return imagesy($this->image);
}
function resizeToHeight($height) {
$ratio = $height / $this->getHeight();
$width = $this->getWidth() * $ratio;
$this->resize($width,$height);
}
function resizeToWidth($width) {
$ratio = $width / $this->getWidth();
$height = $this->getheight() * $ratio;
$this->resize($width,$height);
}
function scale($scale) {
$width = $this->getWidth() * $scale/100;
$height = $this->getheight() * $scale/100;
$this->resize($width,$height);
}
function resize($width,$height) {
$new_image = imagecreatetruecolor($width, $height);
imagecopyresampled($new_image, $this->image, 0, 0, 0, 0, $width, $height, $this->getWidth(), $this->getHeight());
$this->image = $new_image;
}
}
?>

Cách sử dụng :
Các bạn save đoạn code bên trên là SimpleImage.php và xem đoạn code ví dụ minh họa sau để có thể hiểu rõ hơn.
Trong ví dụ này chúng ta sẽ load ảnh nguồn là picture.jpg và thu nhỏ nó lại với kích thước ngang là 250 pixel và cao là 400 pixel

<?php
include('SimpleImage.php');
$image = new SimpleImage();
$image->load('picture.jpg');
$image->resize(250,400);
$image->save('picture2.jpg');
?>

Nếu bạn muốn resize với một bề ngang được chỉ định đúng kích thước đưa ra thì sử dụng như sau :

<?php
include('SimpleImage.php');
$image = new SimpleImage();
$image->load('picture.jpg');
$image->resizeToWidth(250);
$image->save('picture2.jpg');
?>

Còn nếu bạn muốn scale  hình với phần trăm chỉ định thì đoạn code sau sẽ resize tấm hình gốc chỉ bằng 50% so với kích thước ban đầu

include('SimpleImage.php');
$image = new SimpleImage();
$image->load('picture.jpg');
$image->scale(50);
$image->save('picture2.jpg');

Và dĩ nhiên bạn cũng có thể tạo ra nhiều phiên bản thu nhỏ từ một hình gốc với nhiều kích thước khác nhau như sau:

include('SimpleImage.php');
$image = new SimpleImage();
$image->load('picture.jpg');
$image->resizeToHeight(500);
$image->save('picture2.jpg');
$image->resizeToHeight(200);
$image->save('picture3.jpg');

Hàm output cho phép bạn xuất hình ảnh trực tiếp ra trình duyệt mà không cần phải save file, điều này rất hữu ích cho việc tạo ra các hình ảnh thumnail mà không cần phải lưu trữ

header('Content-Type: image/jpeg');
include('SimpleImage.php');
$image = new SimpleImage();
$image->load('picture.jpg');
$image->resizeToWidth(150);
$image->output();

Và đây là đoạn code sẽ tạo ra ảnh thumnail ngay khi bạn upload hình gốc

<?php
if( isset($_POST['submit']) ) {
include('SimpleImage.php');
$image = new SimpleImage();
$image->load($_FILES['uploaded_image']['tmp_name']);
$image->resizeToWidth(150);
$image->output();
} else {
?>
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="uploaded_image" />
<input type="submit" name="submit" value="Upload" />
</form>
<?php
}
?>

 

Resizing images trong PHP

Resizing images trong PHP Đăng ngày 16-06-2017  Mình xin giới thiệu với các bạn bài viết Tạo thumnail hình ảnh bằng PHP cho website của bạn. 1/10 1385

Thảo luận:

Để bình luận bạn phải đăng nhập thành viên.

File tương tự

Files cùng mục

 
File gợi ý cho bạn
File tải nhiều nhất
Megacode.vn - Thư viện mã nguồn chia sẻ, tải file cho cộng đồng
Copyright © 2013-2021. All rights reserved. Bản quyền thuộc VinaGon
Email: info@vinagon.com
Hotline: 086.924.3838