kahodges Posted November 22, 2012 Share Posted November 22, 2012 This script adds a text watermark to an image. No matter what number I put into this script under $fontsize = ? for changing the font size, it does not change when viewing the image. I've tried adding px and em to the number to see if that would help, but it made the images not show up altogether. Can anyone please help me? Here is the code: <?php function watermark_text($src_image,$watermarkstring,$watermark_location,$watermark_margin=0) { $file = $src_image; $size = getimagesize($file); $w = $size[0]; $h = $size[1]; $fontsize = 30; if(stristr($file,".jpg") || stristr($file,".jpeg")) { $image=@imagecreatefromjpeg($file); } else if(stristr($file,".png")) { $image = @imagecreatefrompng($file); } else { exit("Sorry, only *.jpg/*jpeg and *.png images are supported"); } $color = imagecolorallocate($image, 200, 200, 200); $xi = 0; $yi = 0; $strlen_watermark = strlen($watermarkstring); switch($watermark_location) { case "topleft": $x = $watermark_margin; $y = $watermark_margin; break; case "topright": $x = $size[0] - $fontsize * strlen($watermarkstring); $y = $watermark_margin; break; case "center": $x = $size[0]/2 - $fontsize * strlen($watermarkstring)/2; $y = $size[1]/2 - $fontsize ; break; case "bottomleft": $x = $watermark_margin; $y = $size[1] - $fontsize - $watermark_margin; break; case "bottomright": $x = $size[0] - $fontsize * strlen($watermarkstring); $y = $size[1] - $fontsize - $watermark_margin; break; default: $x = 0; $y = 0; break; } imagestring($image, $fontsize, $x, $y, "$watermarkstring", $color); if(stristr($file,".jpg") || stristr($file,".jpeg")) { header("Content-type: image/jpeg"); imagejpeg($image,NULL,100); } else if(stristr($file,".png")) { header("Content-type: image/png"); imagepng($image); } else { exit("Sorry, only *.jpg/*jpeg and *.png images supported"); } ImageDestroy($image); }//function ////////////////////////////////////////////////////////////////////////////////// function watermark_image($image_path_src,$image_path_watermark,$watermark_location,$watermark_margin=0) { if(stristr($image_path_src,".jpg") || stristr($image_path_src,".jpeg")) { $image=@imagecreatefromjpeg($image_path_src); } else if(stristr($image_path_src,".png")) { $image = @imagecreatefrompng($image_path_src); } else { exit("Sorry, only *.jpg/*jpeg and *.png images are supported"); } $size = getimagesize($image_path_src); $w = $size[0]; $h = $size[1]; $src_x = 0; $src_y = 0; if(preg_match("#\.png$#i",$image_path_watermark)) $watermark_image = imagecreatefrompng($image_path_watermark); else if(preg_match("#\.gif$#i",$image_path_watermark)) $watermark_image = imagecreatefromgif($image_path_watermark); else if(preg_match("#\.jpe*g$#i",$image_path_watermark)) $watermark_image = imagecreatefromjpeg($image_path_watermark); else exit("Sorry, only *.gif, *.jpg and *.png watermarks are supported"); $size_watermark = getimagesize($image_path_watermark); $dst_w = $src_w = $size_watermark[0]; $dst_h = $src_h = $size_watermark[1]; switch($watermark_location) { case "topleft": $x = $watermark_margin; $y = $watermark_margin; break; case "topright": $x = $size[0] - $size_watermark[0] - $config["watermark_margin"]; $y = $watermark_margin; break; case "center": $x = $size[0]/2 - $size_watermark[0]/2; $y = $size[1]/2 - $size_watermark[1]/2; break; case "bottomleft": $x = $watermark_margin; $y = $size[1] - $size_watermark[1] - $watermark_margin; break; case "bottomright": $x = $size[0] - $size_watermark[0] - $watermark_margin; $y = $size[1] - $size_watermark[1] - $watermark_margin; break; default: $x = 0; $y = 0; break; } $dst_x = $x; $dst_y = $y; imagecopymerge($image,$watermark_image,$dst_x,$dst_y,$src_x,$src_y,$src_w,$src_h,25); if(stristr($image_path_src,".jpg") || stristr($image_path_src,".jpeg")) { header("Content-type: image/jpeg"); imagejpeg($image,NULL,100); } else if(stristr($image_path_src,".png")) { header("Content-type: image/png"); imagepng($image); } else { exit("Sorry, only *.jpg/*jpeg and *.png images supported"); } ImageDestroy($image); } ///////////////////////////////////////////// include(dirname(__FILE__)."/../common.ini.php"); $item = $catalog->items->get("WHERE id=".(int)$_GET["id"]); switch($config["watermark_type"]) { case "text":watermark_text("../rwx/".$item["file"],$config["watermark_text"],$config["watermark_location"],$config["watermark_margin"]);break; case "image":watermark_image("../rwx/".$item["file"],"../rwx/".$config["watermark_image"],$config["watermark_location"],$config["watermark_margin"]);break; } ?> Quote Link to comment https://forums.phpfreaks.com/topic/271013-change-font-size-in-php-image-watermark-script-help-needed/ Share on other sites More sharing options...
PFMaBiSmAd Posted November 22, 2012 Share Posted November 22, 2012 The second parameter to the imagestring function isn't a font size, it picks the font number. Valid numbers are 1-5 (numbers outsize this range pick the closest permissible number.) For your use of 30, that would result in the function using built-in font number 5 - Can be 1, 2, 3, 4, 5 for built-in fonts in latin2 encoding (where higher numbers corresponding to larger fonts) or any of your own font identifiers registered with imageloadfont(). Quote Link to comment https://forums.phpfreaks.com/topic/271013-change-font-size-in-php-image-watermark-script-help-needed/#findComment-1394279 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.