A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Snippets Functions Classes
Home | PHP Resources | MySQL Zipbase | Forums
<?php
function watermark($file, $watermark, $pos = null, $x = 0, $y = 0){
$details = getimagesize($file);
$wDetails = getimagesize($watermark);
if(!is_null($pos)){
switch($pos){
case TOP_LEFT:
$x = 0;
$y = 0;
break;
case TOP_RIGHT:
$x = $details[0] - $wDetails[0];
$y = 0;
break;
case BOTTOM_LEFT:
$x = 0;
$y = $details[1] - $wDetails[1];
break;
case BOTTOM_RIGHT:
$x = $details[0] - $wDetails[0];
$y = $details[1] - $wDetails[1];
break;
case CENTER:
$x = round(($details[0] - $wDetails[0])/2);
$y = round(($details[1] - $wDetails[1])/2);
break;
}
}
switch($details['mime']){
case 'image/jpeg':$im = imagecreatefromjpeg($file);break;
case 'image/gif':$im = imagecreatefromgif($file);break;
case 'image/png':$im = imagecreatefrompng($file);break;
}
switch($wDetails['mime']){
case 'image/jpeg':$newWater = imagecreatefromjpeg($watermark);break;
case 'image/gif':$newWater = imagecreatefromgif($watermark);$colorTransparent = imagecolortransparent($newWater);imagefill($newWater, 0, 0, $colorTransparent);imagecolortransparent($newWater, $colorTransparent);break;
case 'image/png':$newWater = imagecreatefrompng($watermark);imagealphablending($newWater, false);imagesavealpha($newWater,true);break;
}
imagecopyresampled($im, $newWater, $x, $y, 0, 0, $wDetails[0], $wDetails[1], $wDetails[0], $wDetails[1]);
// Output the image
switch($details['mime']){
case 'image/jpeg':header('Content-type: image/jpeg');imagejpeg($im);break;
case 'image/gif':header('Content-type: image/gif');imagegif($im);break;
case 'image/png':header('Content-type: image/png');imagepng($im);break;
}
// Free up memory
imagedestroy($im);
}
// Watermark using only the defaults
watermark('girl.jpg','watermark.png');
// Watermark using a pre-defined position
// Valid values: TOP_LEFT, TOP_RIGHT, BOTTOM_LEFT, BOTTOM_RIGHT, CENTER
watermark('girl.jpg','watermark.png', BOTTOM_RIGHT);
// Watermark using an exact position
watermark('girl.jpg','watermark.png', null, 150, 150);
// Note that you can only use this function once per page.
// If it is used more than one time, the image that will be displayed
// will be the first function called.
?>
Suggested Difficulty Level: Advanced
Current Score: 3.33
Total votes: 3
Total Views: 1803
Other top snippets by admin:
1. JPG to ASCII Converter
2. Add (th, st, nd, rd, th) to the end of a number
3. Dynamic Page Content From Links
4. AJAX Quickie
5. Simple Image CAPTCHA
1. Auth Class with (2.83 of 87)
2. Test Please Delete (2.83 of 30)
3. Return all repeated (3.64 of 72)
4. Convert an integer (3.3 of 71)
5. URL Shortening for (2.75 of 52)
6. Monthly Content Sorting (3 of 45)
7. Show String Trimmed (2.97 of 65)
8. Human readable file (2.01 of 70)
9. Randomize array values (2.8 of 82)
10. Create a recursive (3.35 of 55)
1. Parse RFC822 date (4 of 1)
2. Dynamic Image Uploading (5 of 1)
3. Spam Filter (0 of 0)
4. Is Multiple (0 of 0)
5. Base64 Encode / (0 of 0)
6. URL Encode / (0 of 0)
7. temp openbills (0 of 0)
8. Php Iban Validator (0 of 0)
9. Mysql Table Builder (0 of 0)
10. File size of (1.75 of 4)
11. Mail from your (1 of 1)
12. OddEven Class (0 of 0)
13. Detect if a (1 of 1)
14. MB CopyMCF-DIR :: (5 of 1)
15. Upper/Lower Case Accented (0 of 0)
16. Zodiac Signs (3 of 1)
17. Really useful code (2.5 of 2)
18. Calculate Central European (0 of 0)
19. Email Attachment (4 of 1)
20. ImageMagick Image Upload (0 of 0)
21. convert plain html (2 of 2)
22. Tag Builder (3.25 of 4)
23. Get Inserted ID (4.33 of 3)
24. Watermark An Image (3.33 of 3)
25. Check Prime Numbers (1.5 of 8)
2009-11-23 00:00:00