邢栋博客

邢栋博客,Action博客,记录工作和生活中的点点滴滴

php创建图像和缩略图以及给图片加水印和文字

php创建图像

<?php
    // 创建图像
    $height = 300; //图像高度
    $width  = 300; //图像宽度
    $im = imagecreatetruecolor($width,$height); //创建一个真彩色的图像
    $white = imagecolorallocate($im,255,255,255);//白色
    $blue = imagecolorallocate($im,0,0,64);//蓝色
    imagefill($im,0,0,$blue); //将背景设置为蓝色
    imageline($im,0,0,$width,$height,$white);//在图上画一条白色的直线
    imagestring($im,4,80,150,"php",$white);//在图上显示白色的“php”文字
    header("cotent-type:image/png"); //输出图像的MIME类型
    imagepng($im); //输出一个png图像数据
    imagedestroy($im);//清空内存

?>    

php创建缩略图

 

<?php
    //创建缩略图
    $image = imagecreatefromjpeg("images/action.jpg");//从jpeg文件或url新建一图像
    $width = imagesx($image);//得到图像的宽度
    $height = imagesy($image);//得到图像的高度
    $th_width = $width*0.5;//设置缩略图宽度为原图的一半
    $th_height = $height*0.5;//设置缩略图高度为原图的一半
    $th = imagecreatetruecolor($th_width,$th_height);//创建一个原图一半大小的画布
    //将原图按照指定大小复制到画布上,得到缩略图
    imagecopyresampled($th,$image,0,0,0,0,$th_width,$th_height,$width,$height);
    imagejpeg($th,"images/action_th.jpg",100);//将缩略图保存到文件夹里
    imagedestroy($th);

?>

<img src="images/action.jpg" /><br />
<img src="images/action_th.jpg" />

php给图片加水印

<?php
    //给图片加水印	
    $image = imagecreatefromjpeg("images/action.jpg");//从jpeg文件新建一个图像
    $water = imagecreatefrompng("images/xing.png");//从png文件新建一个图像
    $width = imagesx($water);//得到水印的宽度
    $height = imagesy($water);//得到水印的高度
    imagecopyresampled($image,$water,0,0,0,0,$width,$height,$width,$height);
    //将水印加载到图像上
    imagejpeg($image,"images/action_water.jpg",100);//将带有水印的图像保存到文件
    imagedestroy($image);
?>

<img src="images/action.jpg" /><br />
<img src="images/action_water.jpg" />

php给图片加文字

<?php
    //给图片加文字
    $image = imagecreatefromjpeg("images/action.jpg");
    $pink = imagecolorallocate($image,255,255,255);
    $font_file = "C:\WINDOWS\Fonts\SimHei.ttf";//字体的路径,视操作系统而定
    $str = "邢栋博客!";
    $str = mb_convert_encoding($str,"utf-8","gbk");//字符转码	
    imagettftext($image,25,10,40,240,$pink,$font_file,$str);//向图像写入文本
    imagejpeg($image,"images/action_ttf.jpg",100);//将带有水印的图像保存到文件
    imagedestroy($image);
	
?>
<img src="images/action.jpg" /><br />
<img src="images/action_ttf.jpg" />


php删除目录和文件
<?php
    function full_rmdir($dirname){
	if(!is_dir($dirname)){
	    echo "指定的文件名不存在或者不是目录文件";
	    exit;
	}
	if($dirHandle = opendir($dirname)){ //打开指定的目录
	    $old_cwd = getcwd();   //取得当前工作的目录
	    chdir($dirname);	//将php的当前目录改为 $dirname
	    while($file = readdir($dirHandle)){ //循环目录下的文件
	    if($file=='.' || $file=='..')continue;//如果是当前目录或者父目录则跳过
		if(is_dir($file)){     //如果是目录
		if(!full_rmdir($file)){return false;}//递归调用自身函数删除目录 
		}else{
		    if(!unlink($file)){return false;}//如果是文件,删除文件
		}
	    }
	closedir($dirHandle);   //关闭目录
	chdir($old_cwd);        //将php的当前目录改为$old_cwd
	if(!rmdir($dirname)){return false;}	 //删除$dirname目录
	return true;  //删除成功,返回true
	}else{
			return false; //未能打开指定的目录,返回false
	}
	}
	$remove_dir = "测试目录";
	if(full_rmdir($remove_dir)){
		echo "删除成功!";
	}else{
		echo "删除失败!";
	}

?>
php实现字符串翻转(包含中文汉字)
<?php  
    //php实现字符串翻转,包含中文汉字
    //substr() 函数返回字符串的一部分。substr(string,start,length)
    //ord() 函数返回字符串第一个字符的 ASCII 值。
    //join() 函数把数组元素组合为一个字符串。
    //array_reverse() 函数将原数组中的元素顺序翻转,创建新的数组并返回。
	
function turnstr($str) { 
	$len = strlen($str);  // 计算字符串的长度 
	for($i=0;$i<$len;$i++) {  
		$char = $str[0];
		if(ord($char)>127){ 
           	$i++;  
			if($i<$len){ 			   
				$arr[] = substr($str, 0, 2); 			   
				$str = substr($str, 2); 				
			} 	   
		}else{         
			$arr[] = $char; 	   
			$str = substr($str, 1); 
       }
	} 
   return join(array_reverse($arr));  
}
$str = 'xingdong 前后端';
echo turnstr($str);
?>

以上只适用于gbk编码,如果是utf-8编码,把 
$i++; 
if($i<$len){ 
    $arr[] = substr($str, 0, 2);
    $str = substr($str, 2); 
}
替换成 
$c_len = (is_utf8)?2:1; 
$i += $c_len;
if($i < $len){ 
    $arr[] = substr($str, 0, $c_len+1); 
    $str = substr($str, $c_len+1);
}

 

php遍历文件夹下的文件及计算出其所占的磁盘空间
<?php
    /*
        php遍历文件夹下的所有文件及其子文件夹下所有的文件并计算出其所占的磁盘空间
    */	
    function dir_size($dir){
	$dh = @opendir($dir);   		  //打开目录,返回一个目录流
	$size = 0;      //初始大小为0 
	    while($file = @readdir($dh)){     //循环读取目录下的文件
	       if($file!='.' and $file!='..'){
	        $path = $dir.'/'.$file;   	//设置目录,用于含有子目录的情况
	        if(is_dir($path)){
		    echo $path.'<br>';
		    $size += dir_size($path);  //递归调用,计算目录大小
		}elseif(is_file($path)){
		    echo $file.'&nbsp;'.filesize($path).'字节<br>';
		    $size += filesize($path);   //计算文件大小
		}
	    } 
	    }	
	    @closedir($dh);   		    //关闭目录流
	    return $size;     		    //返回大小
	}	
	$dir = '.';
	$dir_size = dir_size($dir);
	echo '总大小'.$dir_size.'字节';
?>

 


优惠券
广告位-淘宝
最新微语