php能旋轉圖片,其實作方法為:先建立影像資源;然後使用「imagerotate()」函數以指定的角度旋轉;最後透過「$imagejpeg($rotate,$filename);」語句儲存旋轉後的圖片即可。
推薦:《PHP影片教學》
php能旋轉圖片,其實現方法是:
PHP圖片處理之圖片旋轉和圖片翻轉使用imagerotate函數實現,自訂了多個函數來實現功能需求.
圖片的旋轉是按特定的角度來轉動圖片,圖片的翻轉則是將圖片的內容按特定的方向對調。
圖片翻轉需要自己寫函數來實現,而旋轉圖片則可以直接藉助GD庫中提供的imagerotate()函數完成。
imagerotate()函數的原型如下所示:
resource imagerotate(resource src_im , floatangle, int bgd_color [,intignore_transpatrent])
該函數可以將src_im圖像用給定的角度旋轉,bgd_color指定了旋轉後沒有覆蓋到的部分的顏色。旋轉的中心是影像的中心,旋轉後的影像會按比例縮小以適合目標影像的大小(邊緣不會被剪下)。如果ignore_transpatrent被設為非零值,則透明色會被忽略(否則會被保留)。以下以JPEG格式的圖片為例,宣告一個可以旋轉圖片的函數rotate(),程式碼如下所示:
<?php //用给定角度旋转图像,以jpeg图像格式为例 function rotate($filename,$degrees){ //创建图像资源,以jpeg格式为例 $source =imagecreatefromjpeg($filename); //使用imagerotate()函数按指定的角度旋转 $rotate = imagerotate($source,$degrees, 0); //旋转后的图片保存 $imagejpeg($rotate,$filename); } //把一幅图像brophp.jpg旋转180度 rotate("brophp", 180); ?>
圖片翻轉只能設定沿著Y軸水平翻轉或沿著X軸垂直翻轉。如果是沿著Y軸翻轉,就是將原圖從右向左(或從做向右)按一個像素寬度,以圖片自身高度循環複製到新資源中,保存的新資源就是沿Y軸翻轉後的圖片。以JPEG格式圖片為例,宣告一個可以沿著Y軸翻轉的圖片函數turn_y()程式碼如下所示:
程式碼如下:
<?php function trun_y($filename){ $back =imagecreatefromjpeg($filename); $width = imagesx($back); $height = imagesy($back); //创建一个新的图片资源,用来保存沿Y轴翻转后的图片 $new =imagecreatetruecolor($width, $height); //沿y轴翻转就是将原图从右向左按一个像素宽度向新资源中逐个复制 for($x=0 ;$x<$width; $x++){ //逐条复制图片本身高度,1个像素宽度的图片到新资源中 imagecopy($new,$back, $width-$x-1, 0, $x, 0, 1, $height); } //保存翻转后的图片 imagejpeg($new,$filename); imagedestroy($back); imagedestroy($new); } trun_y("brophp.jpg") ?>
本例宣告的turn_y()函數只需要一個參數,就是要處理的圖片URL。本範例呼叫turn_y()函數將圖片沿著Y軸進行翻轉。如果是沿著X軸翻轉,就是將原圖從上方向下(或從下方往上)旋轉,程式碼如下所示:
程式碼如下:
<?php function trun_x($filename){ $back = imagecreatefromjpeg($filename); $width = imagesx($back); $height = imagesy($back); //创建一个新的图片资源,用来保存沿Y轴翻转后的图片 $new =imagecreatetruecolor($width, $height); //沿y轴翻转就是将原图从右向左按一个像素宽度向新资源中逐个复制 for($y=0 ;$y<$height; $y++){ //逐条复制图片本身高度,1个像素宽度的图片到薪资源中 imagecopy($new,$back,0, $height-$y-1, 0, $y, $width,1); } //保存翻转后的图片 imagejpeg($new,$filename); imagedestroy($back); imagedestroy($new); } trun_x("brophp.jpg") ?>
註:
imagecopy ( resource $src_im , int $dst_x , int $dst_y , int$src_x , int $src_y , int $dst_y , int$src_x , int $src_y , int $intsrc_w , int $ src_h )
將src_im 影像中座標從src_x,src_y 開始,寬度為src_w,高度為src_h 的一部分拷貝到dst_im 影像中座標為dst_x 和dst_y 的位置上。
以上是php能實現旋轉圖片嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!