PHP中怎么实现生成图片水印
短信预约 -IT技能 免费直播动态提醒
PHP中怎么实现生成图片水印,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
文本水印
我们使用函数watermark_text()来生成文本水印,你必须先指定字体源文件、字体大小和字体文本,具体代码如下:
$font_path = "GILSANUB.TTF"; // Font file $font_size = 30; // in pixcels $water_mark_text_2 = "phpfuns"; // Watermark Text function watermark_text($oldimage_name, $new_image_name) { global $font_path, $font_size, $water_mark_text_2; list($owidth,$oheight) = getimagesize($oldimage_name); $width = $height = 300; $image = imagecreatetruecolor($width, $height); $image_class="lazy" data-src = imagecreatefromjpeg($oldimage_name); imagecopyresampled($image, $image_class="lazy" data-src, 0, 0, 0, 0, $width, $height, $owidth, $oheight); $blue = imagecolorallocate($image, 79, 166, 185); imagettftext($image, $font_size, 0, 68, 190, $blue, $font_path, $water_mark_text_2); imagejpeg($image, $new_image_name, 100); imagedestroy($image); unlink($oldimage_name); return true; }
可以在这里查看demo。
图片水印
我们使用函数watermark_image()来生成图片水印,你必须先水银图片的源文件。具体代码如下:
$image_path = "phpfuns.png"; function watermark_image($oldimage_name, $new_image_name) /{ global $image_path; list($owidth,$oheight) = getimagesize($oldimage_name); $width = $height = 300; $im = imagecreatetruecolor($width, $height); $img_class="lazy" data-src = imagecreatefromjpeg($oldimage_name); imagecopyresampled($im, $img_class="lazy" data-src, 0, 0, 0, 0, $width, $height, $owidth, $oheight); $watermark = imagecreatefrompng($image_path); list($w_width, $w_height) = getimagesize($image_path); $pos_x = $width - $w_width; $pos_y = $height - $w_height; imagecopy($im, $watermark, $pos_x, $pos_y, 0, 0, $w_width, $w_height); imagejpeg($im, $new_image_name, 100); imagedestroy($im); unlink($oldimage_name); return true; }
你可以在这里查看demo。
上传图片表单
我们使用下面的表单来上传图片:
<?php $demo_image= ""; if(isset($_POST['createmark']) and $_POST['createmark'] == "Submit") { $path = "uploads/"; $valid_formats = array("jpg", "bmp","jpeg"); $name = $_FILES['imgfile']['name']; if(strlen($name)) { list($txt, $ext) = explode(".", $name); if(in_array($ext,$valid_formats) && $_FILES['imgfile']['size'] <= 256*1024) { $upload_status = move_uploaded_file($_FILES['imgfile']['tmp_name'], $path.$_FILES['imgfile']['name']); if($upload_status){ $new_name = $path.time().".jpg"; // Here you have to user functins watermark_text or watermark_image if(watermark_text($path.$_FILES['imgfile']['name'], $new_name)) $demo_image = $new_name; } } else $msg="File size Max 256 KB or Invalid file format."; } } ?> // HTML Code <form name="imageUpload" method="post" enctype="multipart/form-data" > Upload Image Image :<input type="file" name="imgfile" /><br /> <input type="submit" name="createmark" value="Submit" /> <?php if(!emptyempty($demo_image)) echo '<img class="lazy" data-src="'.$demo_image.'" />'; ?> </form>
关于PHP中怎么实现生成图片水印问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网行业资讯频道了解更多相关知识。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341