CỘNG ĐỒNG CÔNG NGHỆ THÔNG TIN VIỆT NAM

Cách thêm hình mờ watermark vào hình ảnh bằng PHP lên web diễn đàn

0 Thành viên và 1 Khách đang xem chủ đề.

Đang duyệt NetworkEngineer

  • Administrator
  • Sr. Member
  • *****
    • Bài viết: 469
    • Số Lần: +1/-0
Cách thêm hình mờ watermark vào hình ảnh bằng PHP lên web diễn đàn

  Watermark là nhãn được sử dụng trên hình ảnh để hiển thị quyền sở hữu để bảo vệ hình ảnh khỏi bị đánh cắp. Nếu bạn đang phát triển ứng dụng thư viện ảnh bằng PHP và muốn thêm hình mờ vào hình ảnh khi tải lên thì rất dễ dàng. Bạn có thể dễ dàng thêm hình mờ vào hình ảnh bằng PHP. Trong hướng dẫn này, bạn sẽ tìm hiểu cách thêm văn bản hoặc hình ảnh Watermark vào hình ảnh khi được tải lên. Bạn cũng có thể xem bản chạy thử và có thể tải thêm hình mờ vào tập lệnh hình ảnh.

  Vì vậy, hãy để Lốc bắt đầu mã hóa. Chúng tôi sẽ có cấu trúc tập tin sau cho hướng dẫn này.

Mã nguồn: You are not allowed to view links. Register or Login
     index.php
     functions
Bước 1: Tạo mẫu tải lên tập tin

Trong index.php, chúng tôi sẽ tạo tệp tải lên FORM HTML với danh sách duyệt tệp và danh sách thả xuống để chọn văn bản hoặc hình ảnh dạng hình chìm mờ.

Mã nguồn: You are not allowed to view links. Register or Login
<div class="container">
<h2>Example: How To Add Watermark To Images Using PHP</h2>
<form action="" method="post" enctype="multipart/form-data">
<input type="file" name="image" value="">
<select name="image_upload">
<option value="">Select Water Mark Type</option>
<option value="text_watermark">Text Water Mark</option>
<option value="image_watermark">Image Water Mark</option>
</select>
<input type="submit" value="Upload">
</form>
</div>

Bước 2: Xử lý tải lên hình ảnh và thêm hình mờ

Bây giờ index.php, chúng tôi sẽ xử lý tải lên hình ảnh và thêm chức năng hình mờ cho hình ảnh được tải lên. Chúng tôi sẽ kiểm tra loại hình ảnh hợp lệ và sau đó xử lý tải lên hình ảnh và sau đó thêm Hình chìm mờ vào hình ảnh được tải lên theo loại dấu trang đã chọn (văn bản hoặc hình ảnh). Chúng tôi sẽ gọi hàm addTextWatermark () thêm văn bản Watermark và gọi hàm addImageWatermark () để thêm hình mờ. Chúng tôi đã sử dụng watermark.png cho watermark hình ảnh và văn bản PHP PHPAGAG cho hình mờ văn bản.

Mã nguồn: You are not allowed to view links. Register or Login
<?php
if(isset($_FILES['image']['name'])){
// Validating Type of uploaded image
switch($_FILES['image']['type']){
case 
'image/jpeg':
case 
'image/jpg':
// Add more validation if you like
if(getimagesize($_FILES['image']['tmp_name']) > (1024*1024*1024*1024)){
echo 
'Image size is greater than 2MB';
} elseif(empty(
$_POST['image_upload'])){
echo 
'Please select watermark type';
} else {
// Create new name for uploaded image with upload directory path
list($txt$ext) = explode("."$_FILES['image']['name']);
$file_name "images/".rand(09999).'.'.$ext;
$upload copy($_FILES['image']['tmp_name'], $file_name);
if(
$upload == true){
// Check type of water mark is selected
if($_POST['image_upload'] == 'text_watermark'){
// Add text watermark over image
$watermark "PHPZAG"// Add your own water mark here
addTextWatermark($file_name$watermark$file_name);
} elseif(
$_POST['image_upload'] == 'image_watermark'){
// Add image watermark over image
$WaterMark 'watermark.png';
addImageWatermark ($file_name$WaterMark$file_name50);
}
echo 
'<br><img src="'.$file_name.'" class="preview" width="500"><br>';
} else {
echo 
'Error uploading image';
}
}
break;
default:
echo 
'Please select only JPEG or JPG file type for upload';
}
}
?>

Bước 3: Xác định Thêm chức năng Watermark
Trong hàm.php, chúng ta sẽ tạo các hàm addTextWatermark () và addImageWatermark để thêm cả hình mờ văn bản và hình ảnh vào hình ảnh. Ở đây chúng tôi đã sử dụng phông chữ MONOFONT.ttf để thêm hình mờ văn bản

Mã nguồn: You are not allowed to view links. Register or Login
<?php
// Function to add text water mark over image
function addTextWatermark($src$watermark$save=NULL) {
list(
$width$height) = getimagesize($src);
$image_color imagecreatetruecolor($width$height);
$image imagecreatefromjpeg($src);
imagecopyresampled($image_color$image0000$width$height$width$height);
$txtcolor imagecolorallocate($image_color255255255);
$font 'MONOFONT.ttf';
$font_size 50;
imagettftext($image_color$font_size050150$txtcolor$font$watermark);
if (
$save<>'') {
imagejpeg ($image_color$save100);
} else {
header('Content-Type: image/jpeg');
imagejpeg($image_colornull100);
}
imagedestroy($image);
imagedestroy($image_color);
}
// Function to add image watermark over images
function addImageWatermark($SourceFile$WaterMark$DestinationFile=NULL$opacity) {
$main_img $SourceFile;
$watermark_img $WaterMark;
$padding 5;
$opacity $opacity;
// create watermark
$watermark imagecreatefrompng($watermark_img);
$image imagecreatefromjpeg($main_img);
if(!
$image || !$watermark) die("Error: main image or watermark image could not be loaded!");
$watermark_size getimagesize($watermark_img);
$watermark_width $watermark_size[0];
$watermark_height $watermark_size[1];
$image_size getimagesize($main_img);
$dest_x $image_size[0] - $watermark_width $padding;
$dest_y $image_size[1] - $watermark_height $padding;
imagecopymerge($image$watermark$dest_x$dest_y00$watermark_width$watermark_height$opacity);
if (
$DestinationFile<>'') {
imagejpeg($image$DestinationFile100);
} else {
header('Content-Type: image/jpeg');
imagejpeg($image);
}
imagedestroy($image);
imagedestroy($watermark);
}
?>

Bạn có thể xem bản demo trực tiếp từ liên kết Demo và có thể tải xuống tập lệnh từ liên kết Tải xuống bên dưới.