Upload and Add Watermark to Image using PHP

Upload and Add Watermark to Image using PHP

Upload and Add Watermark to Image using PHP

Watermark is the perfect choice to safeguard the image from being stolen or re-used by another person. You can show the ownership by adding a watermark to an image. The watermark helps to recognize the originator of the image/photo. Habitually, We use the watermark stamp in the copyrighted images. Therefore, It adds the company logo or creator name to images as a watermark.

Upload images to the server can be easily applied using PHP. You can also add a watermark to uploaded images on the fly using PHP. Firstly, the PHP GD library offers an easy way to add a watermark image to photo using alpha channels. Secondly, the dynamic watermark feature is handy for the photos to upload the management section. At last, with the help of this tutorial, we will explain to you how to upload the image to the server and add a watermark to an image using PHP.

File Upload Form

Generate an HTML form that permits selecting a file to upload.

<form action="upload.php" method="post" enctype="multipart/form-data">
    Select Image File to Upload:
    <input type="file" name="file">
    <input type="submit" name="submit" value="Upload">
</form>

After submitting the form, you have to post the file data to the upload.php  file to upload and add a watermark to an image using PHP.

SEE ALSO: Autocomplete Address Field using Google Maps JavaScript API with Places Library

Upload Image and Add Watermark with PHP (upload.php)

The upload.php  file handles the image upload and watermark adding functionality.

<?php 
// Path configuration 
$targetDir = "uploads/"; 
$watermarkImagePath = 'allsweb-logo.png'; 
 
$statusMsg = ''; 
if(isset($_POST["submit"])){ 
    if(!empty($_FILES["file"]["name"])){ 
        // File upload path 
        $fileName = basename($_FILES["file"]["name"]); 
        $targetFilePath = $targetDir . $fileName; 
        $fileType = pathinfo($targetFilePath,PATHINFO_EXTENSION); 
         
        // Allow certain file formats 
        $allowTypes = array('jpg','png','jpeg'); 
        if(in_array($fileType, $allowTypes)){ 
            // Upload file to the server 
            if(move_uploaded_file($_FILES["file"]["tmp_name"], $targetFilePath)){ 
                // Load the stamp and the photo to apply the watermark to 
                $watermarkImg = imagecreatefrompng($watermarkImagePath); 
                switch($fileType){ 
                    case 'jpg': 
                        $im = imagecreatefromjpeg($targetFilePath); 
                        break; 
                    case 'jpeg': 
                        $im = imagecreatefromjpeg($targetFilePath); 
                        break; 
                    case 'png': 
                        $im = imagecreatefrompng($targetFilePath); 
                        break; 
                    default: 
                        $im = imagecreatefromjpeg($targetFilePath); 
                } 
                 
                // Set the margins for the watermark 
                $marge_right = 10; 
                $marge_bottom = 10; 
                 
                // Get the height/width of the watermark image 
                $sx = imagesx($watermarkImg); 
                $sy = imagesy($watermarkImg); 
                 
                // Copy the watermark image onto our photo using the margin offsets and  
                // the photo width to calculate the positioning of the watermark. 
                imagecopy($im, $watermarkImg, imagesx($im) - $sx - $marge_right, imagesy($im) - $sy - $marge_bottom, 0, 0, imagesx($watermarkImg), imagesy($watermarkImg)); 
                 
                // Save image and free memory 
                imagepng($im, $targetFilePath); 
                imagedestroy($im); 
     
                if(file_exists($targetFilePath)){ 
                    $statusMsg = "The image with watermark has been uploaded successfully."; 
                }else{ 
                    $statusMsg = "Image upload failed, please try again."; 
                }  
            }else{ 
                $statusMsg = "Sorry, there was an error uploading your file."; 
            } 
        }else{ 
            $statusMsg = 'Sorry, only JPG, JPEG, and PNG files are allowed to upload.'; 
        } 
    }else{ 
        $statusMsg = 'Please select a file to upload.'; 
    } 
} 
 
// Display status message 
echo $statusMsg;

Conclusion

Firstly, our sample script helps you to upload an image with a watermark and save on the server using PHP. Secondly, it will be easy for you to add the watermark to uploaded images automatically using PHP. Based on the specified margin offsets, You can add the watermark to any position on the image. And at last, you can quickly improve the script functionality to add text watermark to an image using PHP.

Also, read our previous blog- Preview and Rotate Image Before Upload using jQuery and PHP

 

 

Exit mobile version