What is wrong with this ?

Discussion in 'PHP' started by AviAtriX, May 14, 2009.

  1. #1
    ok i have this function for adding a watermark on another image .. i got the image ... + the watermark and keeps giving me blank screen or that is done but actually nothing is done ..

    <?PHP 
    function applyWatermark( $srcFilename, $dstFilename, $wtrFilename, $wtrTransparency )
    {
    	 $use_gd = true ;
    	 $COMPOSITE= "0";
    	 $gdInstalled = true;
    
    	// input validation
    	$wtrTransparency = (int) $wtrTransparency;
    	if ( $wtrTransparency > 100 )
    		$wtrTransparency = 100;
    	if ( !file_exists( $srcFilename ) )
    		return IMAGE_ERROR_SOURCE_NOT_EXISTS;
    	if ( !file_exists( $wtrFilename ) )
    		return IMAGE_ERROR_SOURCE_NOT_EXISTS;
    
    	// if destination and source filenames are equivalent then change mode for destination
    	if ( $srcFilename == $dstFilename )
    		chmod( $dstFilename, 0666 );
    
    	if ( $use_gd )
    	{
    		if ( !$gdInstalled )
    			return IMAGE_ERROR_GD_NOT_INSTALLED;
    		$gdInfoArray = gd_info();
    		$size = getimagesize( $srcFilename );
    		$wtrSize = getimagesize( $wtrFilename );
    
    		// only GIF, JPG and PNG allowed
    		switch ( $size[2] )
    		{
    			case IMAGE_TYPE_GIF:
    				if ( !$gdInfoArray['GIF Read Support'] || !$gdInfoArray['GIF Create Support'] )
    					return IMAGE_ERROR_GD_TYPE_NOT_SUPPORTED;
    				$src_im = imagecreatefromgif( $srcFilename );
    				break;
    			case IMAGE_TYPE_JPG:
    				if ( !$gdInfoArray['JPG Support'] )
    					return IMAGE_ERROR_GD_TYPE_NOT_SUPPORTED;
    				$src_im = imagecreatefromjpeg( $srcFilename );
    				break;
    			case IMAGE_TYPE_PNG:
    				if ( !$gdInfoArray['PNG Support'] )
    					return IMAGE_ERROR_GD_TYPE_NOT_SUPPORTED;
    				$src_im = imagecreatefrompng( $srcFilename );
    				break;
    			default:
    				return IMAGE_ERROR_WRONG_TYPE;
    		}
    		switch ( $wtrSize[2] )
    		{
    			case IMAGE_TYPE_GIF:
    				if ( !$gdInfoArray['GIF Read Support'] || !$gdInfoArray['GIF Create Support'] )
    					return IMAGE_ERROR_GD_TYPE_NOT_SUPPORTED;
    				$wtr_im = imagecreatefromgif( $wtrFilename );
    				break;
    			case IMAGE_TYPE_JPG:
    				if ( !$gdInfoArray['JPG Support'] )
    					return IMAGE_ERROR_GD_TYPE_NOT_SUPPORTED;
    				$wtr_im = imagecreatefromjpeg( $wtrFilename );
    				break;
    			case IMAGE_TYPE_PNG:
    				if ( !$gdInfoArray['PNG Support'] )
    					return IMAGE_ERROR_GD_TYPE_NOT_SUPPORTED;
    				$wtr_im = imagecreatefrompng( $wtrFilename );
    				break;
    			default:
    				return IMAGE_ERROR_WRONG_TYPE;
    		}
    
    		if ( !$src_im || !$wtr_im )
    			return IMAGE_ERROR_GD_OPEN_FAILED;
    
    		$watermarkX = ($size[0] - $wtrSize[0]) / 2;
    		$watermarkY = $size[1] - $wtrSize[1];
    
    		$mergeResult = imagecopymerge( $src_im, $wtr_im, $watermarkX, $watermarkY, 0, 0,
    			$wtrSize[0], $wtrSize[1], $wtrTransparency );
    
    		if ( !$mergeResult )
    			return IMAGE_ERROR_GD_MERGE_ERROR;
    
    		switch ( $size[2] )
    		{
    			case IMAGE_TYPE_GIF:
    				$writeResult = imagegif( $src_im, $dstFilename );
    				break;
    			case IMAGE_TYPE_JPG:
    				$writeResult = imagejpeg( $src_im, $dstFilename );
    				break;
    			case IMAGE_TYPE_PNG:
    				$writeResult = imagepng( $src_im, $dstFilename );
    				break;
    		}
    
    		// free memory
    		imagedestroy( $src_im );
    		imagedestroy( $wtr_im );
    
    		if ( $writeResult )
    			return IMAGE_ERROR_SUCCESS;
    		else
    			return IMAGE_ERROR_GD_WRITE_FAILED;
    	}
    	else
    	{
    		$imgTransparency = 100 - $wtrTransparency;
    		$cmd = "$COMPOSITE -gravity \"South\" -dissolve $imgTransparency $wtrFilename -dissolve $wtrTransparency $srcFilename $dstFilename";
    		@exec( $cmd );
    		if ( file_exists($dstFilename) )
    			return IMAGE_ERROR_SUCCESS;
    		else
    			return IMAGE_ERROR_IMAGEMAGICK_ERROR;
    	}
    }
    			$srcfile = './pic.jpg' ;
    			$logo = './watermark.png' ;
    			$srcfile2= './pic2.jpg';
    			$tr = '10';
    		applyWatermark( $srcfile, $srcfile,$logo, $tr );
    
    echo "done" ;
    
    
    
    
    ?>
    Code (markup):
     
    AviAtriX, May 14, 2009 IP
  2. atlantaazfinest

    atlantaazfinest Peon

    Messages:
    389
    Likes Received:
    7
    Best Answers:
    0
    Trophy Points:
    0
    #2
    try putting error_reporting(E_ALL); at the beginning of the file and see if you get any errors
     
    atlantaazfinest, May 14, 2009 IP
  3. AviAtriX

    AviAtriX Peon

    Messages:
    67
    Likes Received:
    0
    Best Answers:
    0
    Trophy Points:
    0
    #3
    again .. blank screen . + my errors are turned on by default ..
     
    AviAtriX, May 14, 2009 IP
  4. Cash Nebula

    Cash Nebula Peon

    Messages:
    1,197
    Likes Received:
    67
    Best Answers:
    0
    Trophy Points:
    0
    #4
    Cash Nebula, May 14, 2009 IP