04/10/2018, 17:42

Tạo ảnh Watermark bằng PHP

Khi bạn muốn thêm một “dấu xác thực” ( watermark ) dưới dạng một ảnh nền vào một file ảnh trên web của bạn thì có rất nhiều cách để thực hiện như dùng photoshop, hoặc các công cụ khác trên mạng, hôm nay mình xin chia sẻ các bạn đoạn code có thể làm watermark cho hình của bạn mà ...

Tạo ảnh Watermark bằng PHP

Khi bạn muốn thêm một “dấu xác thực” (watermark) dưới dạng một ảnh nền vào một file ảnh trên web của bạn thì có rất nhiều cách để thực hiện như dùng photoshop, hoặc các công cụ khác trên mạng, hôm nay mình xin chia sẻ các bạn đoạn code có thể làm watermark cho hình của bạn mà không cần dùng bất kỳ phần mềm nào, và bạn cũng không cần tốn quá nhiều thời gian .

Đoạn code sau sẽ giúp bạn làm điều đó :

<?php
function watermark_image($file, $destination, $overlay = "images/watermark.png", $X = 10, $Y = 10){
$watermark =    imagecreatefrompng($overlay);
$source = getimagesize($file);
$source_mime = $source['mime'];
$source_x = $source['awidth'];
$source_y = $source['height'];
if($source_mime == "image/png"){
$image = imagecreatefrompng($file);
}else if($source_mime == "image/jpeg"){
$image = imagecreatefromjpeg($file);
}else if($source_mime == "image/gif"){
$image = imagecreatefromgif($file);
}
imagecopy($image, $watermark, $X, $Y, 0, 0, imagesx($watermark), imagesy($watermark));
imagepng($image, $destination);
return $destination;
}
?>

Mình xin giải thích các tham số được dùng như sau :

$file : đường dẫn đến hình của bạn
$destination : đường dẫn đến file kết quả tấm hình sau khi tạo ra
$overlay : đường dẫn  hình  watermark của bạn
$X , $Y : là vị trí đặt hình watermark , mặc định là 10

Để sử dụng hàm này các bạn sử dụng như sau :

 <img src=’<?php echo watermark_image(“96.jpg”, “temp/”.time().”.jpg”); ?>‘>

Nếu bạn nào có khó khăn gì thì vui lòng để lại comment , mình sẽ giúp đỡ các bạn.
Chúc các bạn thành công !

Tags: ảnh xác thực hoc php lập trình php php code php tips php tutorial watermark

Chuyên Mục: PHP

Bài viết được đăng bởi webmaster

  • phamthiep

    bạn có thể gửi file demo không nhỉ? mình đang cần xin cảm ơn nhiều

    • papyrut

      Bạn thử làm theo cách mình nói đi, nếu ko đc chỗ nào thì mình sẽ giúp.

0