Tuesday, July 17, 2012

watermark image php



watermark image php

Create 2 folders called  source and watermark Then find suitable image in png format(I ave used above header image)  for wster marking.create following files and see what will be happening.


Before watermark

http://localhost/watermark/watermark/best-australia-beach.jpg
After watermarking
Select a file to upload for processing

<form action="watermark-image.php" method="post" enctype="multipart/form-data">
 Select a file to upload for processing<br>
 <input type="file" name="File1"><br>
 <input type="submit" value="Submit File">
</form>ccccc
<?php


 define( 'WATERMARK_OVERLAY_IMAGE', 'watermark.png' );
 define( 'WATERMARK_OVERLAY_OPACITY', 50 );
 define( 'WATERMARK_OUTPUT_QUALITY', 90 );

 function create_watermark( $source_file_path, $output_file_path )
 {
  list( $source_width, $source_height, $source_type ) = getimagesize( $source_file_path );

  if ( $source_type === NULL )
  {
   return false;
  }

  switch ( $source_type )
  {
   case IMAGETYPE_GIF:
    $source_gd_image = imagecreatefromgif( $source_file_path );
    break;
   case IMAGETYPE_JPEG:
    $source_gd_image = imagecreatefromjpeg( $source_file_path );
    break;
   case IMAGETYPE_PNG:
    $source_gd_image = imagecreatefrompng( $source_file_path );
    break;
   default:
    return false;
  }

  $overlay_gd_image = imagecreatefrompng( WATERMARK_OVERLAY_IMAGE );
  $overlay_width = imagesx( $overlay_gd_image );
  $overlay_height = imagesy( $overlay_gd_image );

  imagecopymerge(
   $source_gd_image,
   $overlay_gd_image,
   $source_width - $overlay_width,
   $source_height - $overlay_height,
   0,
   0,
   $overlay_width,
   $overlay_height,
   WATERMARK_OVERLAY_OPACITY
  );

  imagejpeg( $source_gd_image, $output_file_path, WATERMARK_OUTPUT_QUALITY );

  imagedestroy( $source_gd_image );
  imagedestroy( $overlay_gd_image );
 }



 define( 'UPLOADED_IMAGE_DESTINATION', 'source/' );
 define( 'PROCESSED_IMAGE_DESTINATION', 'watermark/' );

 function process_image_upload( $Field )
 {
  $temp_file_path = $_FILES[ $Field ][ 'tmp_name' ];
  $temp_file_name = $_FILES[ $Field ][ 'name' ];

  list( , , $temp_type ) = getimagesize( $temp_file_path );

  if ( $temp_type === NULL )
  {
   return false;
  }

  switch ( $temp_type )
  {
   case IMAGETYPE_GIF:
    break;
   case IMAGETYPE_JPEG:
    break;
   case IMAGETYPE_PNG:
    break;
   default:
    return false;
  }

  $uploaded_file_path = UPLOADED_IMAGE_DESTINATION . $temp_file_name;
  $processed_file_path = PROCESSED_IMAGE_DESTINATION . preg_replace( '/\\.[^\\.]+$/', '.jpg', $temp_file_name );

  move_uploaded_file( $temp_file_path, $uploaded_file_path );

  $result = create_watermark( $uploaded_file_path, $processed_file_path );

  if ( $result === false )
  {
   return false;
  }
  else
  {
   return array( $uploaded_file_path, $processed_file_path );
  }
 }



 $result = process_image_upload( 'File1' );

 if ( $result === false )
 {

  echo '<br>An error occurred !';
 }
 else
 {
  echo '<table bgcolor=#ccc><tr><td>Original image </td><td> <a href="' . $result[ 0 ] . '" target="_blank">' . $result[ 0 ] . '</a></td></tr>';
  echo '<tr><td>Watermarked image  </td><td><a href="' . $result[ 1 ] . '" target="_blank">' . $result[ 1 ] . '</a></td></tr></table>';
 }
?>

No comments:

Post a Comment