PHP中怎樣完成影像的縮放和裁切? (實例詳解)

WBOY
發布: 2023-04-10 17:54:02
原創
3565 人瀏覽過

在之前的文章中為大家帶來了《怎麼通過PHP來繪製圖形驗證碼? 》,其中介紹了在PHP中怎樣繪製文字,怎樣結合之前的知識繪製圖形驗證碼,本篇文章,我們一起來看一看應該怎樣給圖形進行圖像縮放和裁剪,希望能幫助到大家!

PHP中怎樣完成影像的縮放和裁切? (實例詳解)

在前面我們了解了應該怎樣去繪製圖形驗證碼,那接下來我們一起看一看,在PHP中想要實現圖像的縮放和裁剪應該怎樣操作。不過在了解圖片的縮放和裁剪之前我們先來認識一下下面這兩個函數:

  • <strong>#imagecopyresampled</strong><strong> </strong>

  • <strong></strong><strong>##:用於重採樣拷貝部分影像並調整大小   </strong>

#imagecopyresized



PHP中怎樣完成影像的縮放和裁切? (實例詳解)


  • :用於拷貝部分影像並調整大小

       

  • 這兩個函數拷貝圖片的,可以用來完成影像的縮放或裁切。它們的語法格式參數是一樣的,不同的是它們拷貝的圖片是部分還是整張的。它們的語法格式如下:

    imagecopyresampled ($目标图 ,$来源图,$目标开始的x位置,$目标开始的y位置,$来源开始的x位置,$来源开始的y位置,$目标图片的宽 ,$目标图片的高,$来源图片的宽 ,$来源图片的高 )
    登入後複製
  • 從來源圖片的開始點(x,y)起,指定的寬高的大小圖。放至到目標圖片的起點(x,y),指定寬高大小的圖片中。
  • 縮放圖片
  • 縮放圖片首先我們先準備一張名為dog.png的圖片:
  • #我們的程式碼需要做到以下步驟才能完成對圖形的縮放:


開啟來源圖片

PHP中怎樣完成影像的縮放和裁切? (實例詳解)#設定圖片縮放百分比(縮放)


取得來源圖片,並按比調整大小

新指定大小的圖片為目標圖

將來源圖調整後的大小放到目標圖

銷毀資源

PHP中怎樣完成影像的縮放和裁切? (實例詳解)

範例如下:

<?php
//打开来源图片
$a = imagecreatefrompng(&#39;dog.png&#39;);
//定义百分比,缩放到0.1大小
$percent = 0.1;
// 将图片宽高获取到
list($width, $height) = getimagesize(&#39;dog.png&#39;);
//设置新的缩放的宽高
$new_width = $width * $percent;
$new_height = $height * $percent;
//创建新图片
$new_image = imagecreatetruecolor($new_width, $new_height);
//将原图$image按照指定的宽高,复制到$new_image指定的宽高大小中
imagecopyresampled($new_image, $a, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
header(&#39;content-type:image/jpeg&#39;);
imagejpeg($new_image);
?>
登入後複製
    輸出結果:
  • #由上述結果,透過imagecopyresampledh函數便完成了影像的縮放。

  • 裁剪圖片

  • #裁剪圖片,需要透過
  • imagecopyresized
函數來實現。接下來我們透過一個範例來解釋一下:


我有兩張名為dog.png和logo.png的圖片

##現在想要吧logo圖片裁剪一些放在dog圖片上,那該怎麼實現呢?以下是主要步驟:PHP中怎樣完成影像的縮放和裁切? (實例詳解)PHP中怎樣完成影像的縮放和裁切? (實例詳解)

開啟來源圖片和目標圖片

#截取來源圖片中的點,設定寬高。放至到目標圖片中。 (裁剪)

PHP中怎樣完成影像的縮放和裁切? (實例詳解)

儲存圖片輸入

銷毀資源

######## 實際操作如下:## #######logo圖片中,我想要把文字部分裁掉,只保留圖片部分,我們可以知道想要保留的圖片部分開始的座標是(0,0),結束的座標是(52 ,59)。 ##################那我們就把裁剪過後的圖片放到目標圖片的左上角,剛好座標也就是從(0,0)到(52,59) ,既然已經整理好了思路,程式碼如下:######
<?php
 $dst = imagecreatefrompng(&#39;dog.png&#39;);
 $src = imagecreatefrompng(&#39;logo.png&#39;);
 imagecopyresized($dst, $src, 0, 0, 0, 0, 52, 59, 52, 59);
 header(&#39;content-type:image/jpeg&#39;); 
imagejpeg($dst); 
imagedestroy($dst);
 imagedestroy($src);
 ?>
登入後複製
###輸出結果:################由上述結果,我們便完成了透過imagecopyresizedh函數的影像裁剪。 ######推薦學習:《###PHP影片教學###》###

以上是PHP中怎樣完成影像的縮放和裁切? (實例詳解)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板