TalkPHP
 
 
Account Login
Latest Articles
» The basic usage of PHPTAL, a XML/XHTML template library for PHP
» Vulnerable methods and the areas they are commonly trusted in.
» Simple way to protect a form from bot
» The Basics On: How Session Stealing Works
» How to keep your forms from double posting data
IRC Channel
IRC Speech Bubble Join the friendly bunch on IRC...
(#TalkPHP on Freenode)

...Also available via a web interface.

See this thread for information on the TalkPHP Free Hugs Initiative™. Subject to availability.
Associates
Associates
CSS Tutorials
Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old 08-12-2011, 08:58 AM   #1 (permalink)
The Visitor
 
hitchy's Avatar
 
Join Date: Jan 2011
Location: New Zealand
Posts: 3
Thanks: 0
hitchy is on a distinguished road
Help image upload script with watermark

hello... first off let me just say im sorry if this is in the wrong place i found it hard to pick weather its beginner or more advanced, PLEASE move this if it is in the wrong place.

ok with that out of the way, i have been editing a php login script for a while now and have created/pieced together an image uploader which works fine, i am now trying to add a watermark script to my uploader so it saves the images to my server with a watermark already on them.


here is the uploader script taken from inside a process page.
PHP Code:
   function upload($subtitle){
      global 
$database$form//The database, form and mailer object
      
    
$random $this->generateRandID();
    
$size $_FILES['uploaded']['size'];
    
$type $_FILES['uploaded']['type'];
    
$title $_POST['title'];    
    
$reference $random ."-"$_FILES['uploaded']['name'];
    
    
/*DATE start*/
    
$time date (DATE_RFC822);
    
$tz$this->userinfo['country'];
    
$dtzone = new DateTimeZone($tz);
    
$dtime= new DateTime ($time,$dtzone);
    
$date=$dtime->format ('U');

        
/*DATE end*/




    
      /* Name error checking */
      
$field "title";
      if(!
$subtitle || strlen($subtitle trim($subtitle)) == 0){
         
$form->setError($field"* Name not entered");
      } else {
         
$subtitle stripslashes($subtitle);
      }
      
      
        
$field "uploaded";
$allowed_types = array('image/gif','image/pjpeg','image/jpeg','image/PJPEG','image/JPEG','image/jpg','image/JPG','image/x-png');

if(!
in_array($type$allowed_types))
 { 
 
$form->setError($field"invalid file type"); 
 } else {
 if (
$size 307200)
{
$form->setError($field"Your file is to big, needs top be smaller"); 
 } }


      

      
      
      
/* Errors exist, have user correct them */
      
if($form->num_errors 0){
         return 
1;  //Errors with form
      
}
      
/* No errors, add the new account to the */
      
else{
      
$target "user_images";
    if(!
is_dir($target)) @mkdir($target);
    
$target $target ."/"$_SESSION['username'];
    if(!
is_dir($target)) @mkdir($target);
    
$target $target ."/"'pics';    
    if(!
is_dir($target)) @mkdir($target);
    
$target $target."/"$random ."-".basename($_FILES['uploaded']['name']) ;

$target2 "user_images";
    
$target2 $target2 ."/"$_SESSION['username'];
        
$target2 $target2 '/pics';
        
$target2 $target2 '/thumbs';
        if(!
is_dir($target2)) @mkdir($target2);
        
$target2 $target2."/"$random ."-".basename($_FILES['uploaded']['name']) ;
        

 function 
createthumb($name,$filename,$new_w,$new_h)
{
$system=explode(".",$name);
if (
preg_match("/JPG|JPEG|jpg|jpeg/",$system[1])){$src_img=imagecreatefromjpeg($name);}
if (
preg_match("/png|PNG/",$system[1])){$src_img=imagecreatefrompng($name);}
if (
preg_match("/gif|GIF/",$system[1])){$src_img=imagecreatefromgif($name);}

$old_x=imageSX($src_img);
$old_y=imageSY($src_img);
if (
$old_x $old_y
{
$thumb_w=$new_w;
$thumb_h=$old_y*($new_h/$old_x);
}
if (
$old_x $old_y
{
$thumb_w=$old_x*($new_w/$old_y);
$thumb_h=$new_h;
}
if (
$old_x == $old_y
{
$thumb_w=$new_w;
$thumb_h=$new_h;
}
$dst_img=ImageCreateTrueColor($thumb_w,$thumb_h);
imagecopyresampled($dst_img,$src_img,0,0,0,0,$thumb_w,$thumb_h,$old_x,$old_y); 

if     (
preg_match("/png/",$system[1])){imagepng($dst_img,$filename);} 
if    (
preg_match("/gif/",$system[1])){imagegif($dst_img,$filename);} 
else     {
imagejpeg($dst_img,$filename);}
    
    
// Clear the memory of the temporary image 
    
imagedestroy($dst_img);
    
imagedestroy($src_img);  
}
 
//Writes the photo to the server 
 

 
if(move_uploaded_file($_FILES['uploaded']['tmp_name'], $target))  { 
  }
$target2 "user_images";
    
$target2 $target2 ."/"$_SESSION['username'];
        
$target2 $target2 '/pics';
        
$target2 $target2 '/thumbs';
        if(!
is_dir($target2)) @mkdir($target2);
        
$target2 $target2."/".basename($random ."-".$_FILES['uploaded']['name']) ;
        
createthumb($target,$target2,200,200);
           
      
         if(
$database->addUpload($subuser$size$subtitle$type$reference$date)){
            
            return 
0;  //New user added succesfully
         
}else{
            return 
2;  //Registration attempt failed
         
}
      } 
   } 
the script checks the title field has something in and checks the type and size of the image ($uploaded), then it creates the folder system i want and uploads the image as well as creating a thumbnail and saving that to its own folder.

all the tutorials i have seen for adding a watermark to an image either add the watermark as the image is viewed (not saving the watermark on the image) or they work in a way that i cant get to work with my script above.

i have a watermark script working
PHP Code:
$image_uploaded $reference;
$image_uploaded_temp $_FILES['uploaded']['tmp_name'];\

move_uploaded_file ($image_uploaded_temp"images/$image_uploaded");

function 
watermarkImage($location)
{
$watermark imagecreatefrompng("watermark.png");
$watermark_height imagesy($watermark);
$watermark_width imagesx($watermark);
$image imagecreatetruecolor($watermark_width$watermark_height);
$image imagecreatefromjpeg($location);
$size getimagesize($location);
$x_pos $size[0] - $watermark_width 10;
$y_pos $size[1] - $watermark_height 10;
imagecopymerge($image$watermark$x_pos$y_pos00$watermark_width$watermark_height100);
imagejpeg($image$location);
imagedestroy($image);
imagedestroy($watermark);
}
watermarkImage("images/$image_uploaded"); 
but i am unable to combine the 2 scripts to get it to work

please is there anyone that can help?
cheers

p.s i know my script isnt the easiest to follow and its most likely not the best way to do it either but thats ok for now.
hitchy is offline  
Reply With Quote
Reply



Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On

Similar Threads
Thread Thread Starter Forum Replies Last Post
Image Reflections in PHP Rendair Advanced PHP Programming 17 11-30-2011 08:41 AM
Image Upload Speed captainmerton General 6 03-29-2011 08:33 AM
Upload script help josiec09 Absolute Beginners 2 08-10-2010 10:58 PM
Show Process While Image Upload dhaval Advanced PHP Programming 7 09-02-2009 11:24 AM
Preview: Upcoming Image Upload Script + Member System Gareth Show Off 2 07-10-2008 06:56 PM


All times are GMT. The time now is 09:06 PM.

 
     

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.1.0
Inactive Reminders By Icora Web Design