我们看到58同城出现的电话号码图片,防止别人采集,还有我们发现有些人的信息变成图片为了防止别人的采集,我们应该怎么做呢?这里我给大家演示一下,代码如下
<?php $text="这是一个测试用字符串!"; $font="SIMLI.TTF";//需要将ttf文件拷贝到同级目录或指定目录 $size=26;//字体大小 $fontcolor="ff0000";//字体颜色 $backcolor="ff4fff";//背景色,如果设0则为透明 $shadowPix=2;//阴影大小,如果为0则没有阴影 $shadowColor="444444";//阴影颜色 $image=textToImgR($text, $font, $size, $fontcolor, $backcolor, $shadowPix, $shadowColor); header("Content-Type:image/gif"); imagegif($image); /* * textToImgR函数允许传入一个字符串并返回一个图片资源 * $text 必填,要转换的字符串 * $font 必填,转换用的字体,需要ttf文件拷贝到同级目录或指定目录 * $size 可选,转换的大小默认14号字体 * $fontcolor 可选,字体颜色,默认黑色 如000000, * $backcolor 可选,背景颜色,默认透明 如 FFFFFFF白色 0透明 * $shadowPix 可选,阴影大小,默认无阴影 如1或者0透明 * $shadowColor 可选,阴影颜色,默认C0C0C0灰色 */ function textToImgR($text,$font,$size=14,$fontcolor="000000",$backcolor=0,$shadowPix=0,$shadowColor="C0C0C0"){ //如果传入的字符串为空或者ttf文件不存在则直接返回假 if($text==''||!file_exists($font)){ return false; } /* * imagettfbbox返回字符串四角坐标 0 左下角 X 位置 1 左下角 Y 位置 2 右下角 X 位置 3 右下角 Y 位置 4 右上角 X 位置 5 右上角 Y 位置 6 左上角 X 位置 7 左上角 Y 位置 */ $boundArr=imagettfbbox($size, 0, $font, $text); $width=$boundArr[2]-$boundArr[0];//计算字串宽度 $widthImg=$width+5;//准备画板宽度,需要加上一点值。多次试验+5即可 $height=abs($boundArr[7])-abs($boundArr[1]);//字串高度 $heightImg=$height+5;//画板高度 $imgHandle=imagecreatetruecolor($widthImg, $heightImg);//准备画板资源 //准备字串颜色,imagecolorallocate中需要传入10进制格式颜色值,利用字串切割和转换实现。 $fColor=imagecolorallocate($imgHandle, hexdec(substr($fontcolor,0, 2)), hexdec(substr($fontcolor,2, 2)), hexdec(substr($fontcolor,4, 2))); //准备背景颜色,如果传入的值不是0则正常处理,如果是0则透明化 if($backcolor){ $bColor=imagecolorallocate($imgHandle, hexdec(substr($backcolor,0, 2)), hexdec(substr($backcolor,2, 2)), hexdec(substr($backcolor,4, 2))); }else{ //fedcba作为透明颜色,此颜色不常被试用 $backcolor="fedcba"; $bColor=imagecolorallocate($imgHandle, hexdec(substr($backcolor,0, 2)), hexdec(substr($backcolor,2, 2)), hexdec(substr($backcolor,4, 2))); imagecolortransparent($imgHandle,$bColor);//将此颜色透明化 } imagefilledrectangle($imgHandle, 0, 0, $widthImg, $heightImg, $bColor);//准备一个区域 //如果要求阴影 if($shadowPix>0){ //准备阴影色 $sColor=imagecolorallocate($imgHandle, hexdec(substr($shadowColor,0, 2)), hexdec(substr($shadowColor,2, 2)), hexdec(substr($shadowColor,4, 2))); //利用imagettftext函数画出阴影图片,注意x,y坐标是以字体左下角为圆心向上填充 imagettftext($imgHandle, $size, 0, $shadowPix+1,$height+$shadowPix+1, $sColor, $font, $text); } //画出字体图形 imagettftext($imgHandle, $size, 0, 1, $height+1, $fColor, $font, $text); //返回该资源 return $imgHandle; } ?>欢迎转载,转载请注明来自微度网络-网络技术中心http://yun.widuu.com
发表评论 取消回复