本文實例講述了php圖像處理函數imagecopyresampled用法。分享給大家供大家參考,具體如下:
語法
參數
dst_image |
目標圖象連接資源。 |
src_image |
源圖象連接資源。 |
dst_x |
目標 X 坐標點。 |
dst_y |
目標 Y 坐標點。 |
src_x |
源的 X 坐標點。 |
src_y |
源的 Y 坐標點。 |
dst_w |
目標寬度。 |
dst_h |
目標高度。 |
src_w |
源圖象的寬度。 |
src_h |
源圖象的高度。 |
成功時返回 TRUE, 或者在失敗時返回 FALSE。
案例
案例(圖像裁減):
1
2
3
4
5
6
7
8
9
10
11
|
<?php $targ_w = $targ_h = 150; // 設置目標寬度與高度 $jpeg_quality = 90; // 圖片質量90,滿分為100 $src = 'demo_files/pool.jpg' ; // 被處理的圖片 $img_r = imagecreatefromjpeg( $src ); // 獲取原圖 $dst_r = ImageCreateTrueColor( $targ_w , $targ_h ); // 獲取新圖 imagecopyresampled( $dst_r , $img_r ,0,0, $_POST [ 'x' ], $_POST [ 'y' ], $targ_w , $targ_h , $_POST [ 'w' ], $_POST [ 'h' ]); // 目標圖 源圖 目標X坐標點 目標Y坐標點 源的X坐標點 源的Y坐標點 目標寬度 目標高度 源圖寬度 源圖高度 header( 'Content-type: image/jpeg' ); imagejpeg( $dst_r ,null, $jpeg_quality ); // 輸出圖象到瀏覽器或文件 ?> |
案例二(重新取樣):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
<?php // 源文件 $filename = '1.jpg' ; // 設置最大寬高 $width = 400; $height = 400; // Content type header( 'Content-Type: image/jpeg' ); // 獲取新尺寸 list( $width_orig , $height_orig ) = getimagesize ( $filename ); $ratio_orig = $width_orig / $height_orig ; if ( $width / $height > $ratio_orig ) { $width = $height * $ratio_orig ; } else { $height = $width / $ratio_orig ; } // 重新取樣 $image_p = imagecreatetruecolor( $width , $height ); $image = imagecreatefromjpeg( $filename ); imagecopyresampled( $image_p , $image , 0, 0, 0, 0, $width , $height , $width_orig , $height_orig ); // 輸出 imagejpeg( $image_p , null, 100); ?> |
附上上傳圖片的三種思路
1.選擇圖片,提交表單,服務器統一處理上傳,保存路徑
2.選擇圖片,上傳,獲取路徑,提交表單,保存路徑
3.選擇圖片,上傳到服務器,通過某種途徑獲取到服務器的圖片,保存到本地
希望本文所述對大家PHP程序設計有所幫助。