PHP從零單排(十八)圖片處理

1.打開已經存在的圖片


函數imagecreatefromjpeg()的參數即文件所在路徑,返回值是參數所指圖片的資源標識符。該函數時通過已有圖像新建一個圖像,並不是單純打開原圖像本身。如果將圖片的後綴名.jpg強制改為.png,即便是使用函數imagecreatefrompng(),也無法打開文件,因為圖片本質還是jpg格式的圖片。

2.獲取圖片的相關屬性

<?php
$img=imagecreatefromjpeg("cc.jpg");
$x=imagesx($img);
$y=imagesy($img);
echo "圖片cc.jpg的寬為:$x pixels";
echo "
"; echo "
"; echo "圖片cc.jpg的高為:$y pixels"; ?>

另外,通過一個不屬於GD庫的函數getimagesize(),可以取得圖片的大小等相關屬性,該函數的語法如下:

array getimagesize(string $filename [, array &imageinfo])

<?php
$img_info=getimagesize("cc.jpg");
for($i=0;$i<4;++$i)
{
	echo $img_info[$i];
	echo "
"; } ?>

第三個元素是圖片的格式,它的取值含義如下所示:

1:表示該圖片是GIF格式

2:表示該圖片是JPG格式

3:表示該圖片是PNG格式

4:表示該圖片是SWF格式

5:表示該圖片是PSD格式

6:表示該圖片是BMP格式

<img src="https://blog.csdn.net/u014761013/article/details/">

3.對圖片加水印效果

·獲取要添加水印的圖片的寬、高值

·確定圖片大小是否滿足水印文字大小

·確定水印效果在圖片中的位置

·設定圖像的混色模式

·生成水印效果

·釋放資源

<?php 
function makeimagewatermark($image,$pos,$water_text,$font_size,$color)
{
	$font_type="c://WINDOWS//Fonts//SIMYOU.TTF";
	if(!empty($image)&& file_exists($image))
	{
		$img_info=getimagesize($image);
		$g_w=$img_info[0];
		$g_h=$img_info[1];
		switch($img_info[2])
		{
			case 1:
			$img=imagecreatefromgif($image);
			break;
			case 2:
			$img=imagecreatefromjpeg($image);
			break;
			case 3:
			$img=imagecreatefrompng($image);
			break;
			default:
			die("Format Wrong");			
			}		
		}
	else 
	{
		die("Not exists!");		
		}	
	$temp=imagettfbbox(ceil($font_size*2.5),0,$font_type,$water_text);
	$w=$temp[2]-$temp[6];
	$h=$temp[3]-$temp[7];
	if(($g_w<$w) || ($g_h0)
{$uploadfile="./".time()."_".$_FILES['userfile']['name'];
if(copy($_FILES['userfile']['tmp_name'],$uploadfile))
{
    makeimagewatermark($uploadfile,2,"Photo by Mac",16,"#43042A");
	echo "";	
	}
else
{
	echo "uploadWrong!
"; } } ?> 19.9.php 選擇上傳圖片:

4.生成已有圖片的縮略圖


第一個和第二個參數分別是目標圖像、原圖像的標識符,接下來4個參數是目的圖像和原圖像的復制位置的坐標,最後4個參數是目的圖像和原圖像的復制區域的寬高。
!!使用函數imagecopyresampled()函數

You May Also Like