Jump to content

[SOLVED] GD Image watermarking?


marksie1988

Recommended Posts

i have tried variouse ways to watermark the image but cant seem to get it working, i have the below script which uploads and resizes the image and i am trying to get it to add a watermark after it resizes but everything i try doesnt work, i was wondering if someone could give me help with this as i am strugling to find something that will work with my script on the net or im just looking in the wrong places.

 

<?php 
include("../login/include/session.blc");
$directory_self = str_replace(basename($_SERVER['PHP_SELF']), '', $_SERVER['PHP_SELF']);
$uploadsDirectory = $_SERVER['DOCUMENT_ROOT'] . $directory_self . 'userpics/';
$uploadForm = 'http://' . $_SERVER['HTTP_HOST'] . $directory_self . 'upload.form.blc';
$uploadSuccess = 'http://' . $_SERVER['HTTP_HOST'] . $directory_self . 'upload.success.blc';
$fieldname = 'file';
$errors = array(1 => 'php.ini max file size exceeded', 
                2 => 'html form max file size exceeded', 
                3 => 'file upload was only partial', 
                4 => 'no file was attached');

isset($_POST['submit'])
or error('the upload form is needed', $uploadForm);

($_FILES[$fieldname]['error'] == 0)
or error($errors[$_FILES[$fieldname]['error']], $uploadForm);

@is_uploaded_file($_FILES[$fieldname]['tmp_name'])
or error('not an HTTP upload', $uploadForm);

@getimagesize($_FILES[$fieldname]['tmp_name'])
or error('only image uploads are allowed', $uploadForm);

$temp_filename = $_FILES[$fieldname]['name'];	



                
                $ext = explode('.',$temp_filename);
                $ext = $ext[count($ext)-1];
                $temp_filename = time()."-".$session->username.".".$ext;

$now = time();
while(file_exists($uploadFilename = $uploadsDirectory.$temp_filename))
{

$now++;

}
$username = $session->username;
    mysql_query ("UPDATE users SET pic = '$temp_filename' WHERE username = '$username'");



@move_uploaded_file($_FILES[$fieldname]['tmp_name'], $uploadFilename)
or error('receiving directory insuffiecient permission', $uploadForm);

$uploadFilename = $uploadsDirectory.$temp_filename;
$ext = strtolower($ext); 

		if($ext == "jpg" || $ext == "jpeg" || $ext == "pjpeg") {
          
          $originalImage = imagecreatefromjpeg($uploadFilename); 
          
            } elseif($ext == "png") {        
          
          $originalImage = imagecreatefrompng($uploadFilename); 
          
            } elseif($ext == "gif") {
            
          $originalImage = imagecreatefromgif($uploadFilename); 
            
            }  

list($width, $height) = getimagesize($uploadFilename);
if($width >= $height){
	$ratio = $width/$height;
	$newWidth = 144;
	$newHeight = $newWidth/$ratio;
} else{
	$ratio = $height/$width;
	$newHeight = 120;
	$newWidth = $newHeight/$ratio;
}
$tempImage = imagecreatetruecolor($newWidth, $newHeight);
imagecopyresampled($tempImage, $originalImage, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height);
imagejpeg($tempImage, $uploadFilename, 80);	
imagedestroy($tempImage);

header('Location: ' . $uploadSuccess);

function error($error, $location, $seconds = 5)
{
header("Refresh: $seconds; URL=\"$location\"");
echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"'."\n".
'"http://www.w3.org/TR/html4/strict.dtd">'."\n\n".
'<html lang="en">'."\n".
'	<head>'."\n".
'		<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">'."\n\n".
'		<link rel="stylesheet" type="text/css" href="stylesheet.css">'."\n\n".
'	<title>Upload error</title>'."\n\n".
'	</head>'."\n\n".
'	<body>'."\n\n".
'	<div id="Upload">'."\n\n".
'		<h1>Upload failure</h1>'."\n\n".
'		<p>An error has occured: '."\n\n".
'		<span class="red">' . $error . '...</span>'."\n\n".
'	 	The upload form is reloading</p>'."\n\n".
'	 </div>'."\n\n".
'</html>';
exit;
} 

?>

Link to comment
https://forums.phpfreaks.com/topic/83377-solved-gd-image-watermarking/
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.