I am trying to automatically resize the watermark to cover 1/4 of the image. I have a watermark code, but I cannot change it correctly.
<?php $image = $_GET['src']; $path_parts = pathinfo($image); $extension=strtolower($path_parts['extension']); $size = (imagesx($image)/2); $stamp = ImageCreateFromPNG("watermark.png"); ImageAlphaBlending($stamp,true); ImageSaveAlpha($stamp,true); $w = imagesx($stamp); $h = imagesy($stamp); if( $w==0 or $h==0 ) die("ERROR - zero image size"); $percent = $size / (($w>$h)?$w:$h); $nw = intval($w*$percent); $nh = intval($h*$percent); $stamp_resized = ImageCreateTrueColor($nw,$nh); ImageAlphaBlending($stamp_resized,false); ImageSaveAlpha($stamp_resized,true); if(!empty($transparent_color)) { $transparent_new = ImageColorAllocate($stamp_resized,$transparent_color['red'],$transparent_color['green'],$transparent_color['blue']); $transparent_new_index = ImageColorTransparent($stamp_resized,$transparent_new); ImageFill($stamp_resized, 0,0, $transparent_new_index); } if(ImageCopyResized($stamp_resized,$stamp, 0,0,0,0, $nw,$nh, $w,$h )) { ImageDestroy($stamp); $stamp = $stamp_resized; } //Everything from here on works perfect if(file_exists($image)){ if ($extension == 'gif')$im = imagecreatefromgif($_GET['src']); if ($extension == 'jpg') { $im = imagecreatefromjpeg($_GET['src']); $marge_right = 10; $marge_bottom = 10; $sx = imagesx($stamp); $sy = imagesy($stamp); imagecopy($im, $stamp, imagesx($im) - $sx - $marge_right, imagesy($im) - $sy - $marge_bottom, 0, 0, $sx, $sy); } } else{ $im = imagecreatefromgif('images/no_picture.gif'); } // Output and free memory header('Content-type: image/jpeg'); imagejpeg($im); imagedestroy($im); ?>
I checked the error log and had the following errors:
[Thu Aug 09 16:47:05 2012] [error] [client 24.224.164.149] PHP Warning: imagesx() expects parameter 1 to be resource, string given in {path removed}/watermark.php on line 15 [Thu Aug 09 16:47:05 2012] [error] [client 24.224.164.149] PHP Warning: imagecreatetruecolor(): Invalid image dimensions in {path removed}/watermark.php on line 32 [Thu Aug 09 16:47:05 2012] [error] [client 24.224.164.149] PHP Warning: imagealphablending() expects parameter 1 to be resource, boolean given in {path removed}/watermark.php on line 34 [Thu Aug 09 16:47:05 2012] [error] [client 24.224.164.149] PHP Warning: imagesavealpha() expects parameter 1 to be resource, boolean given in {path removed}/watermark.phpp on line 35 [Thu Aug 09 16:47:05 2012] [error] [client 24.224.164.149] PHP Warning: imagecopyresized() expects parameter 1 to be resource, boolean given in {path removed}/watermark.php on line 44