本文实例讲述了php实现图片按比例截取的方法。分享给大家供大家参考,具体如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
filename = 'img/test.jpg' ; $all_type = array ( "jpg" => array ( "create" => "ImageCreateFromjpeg" , "output" => "imagejpeg" , "exn" => ".jpg" ), "gif" => array ( "create" => "ImageCreateFromGIF" , "output" => "imagegif" , "exn" => ".gif" ), "jpeg" => array ( "create" => "ImageCreateFromjpeg" , "output" => "imagejpeg" , "exn" => ".jpg" ), "png" => array ( "create" => "imagecreatefrompng" , "output" => "imagepng" , "exn" => ".png" ), "wbmp" => array ( "create" => "imagecreatefromwbmp" , "output" => "image2wbmp" , "exn" => ".wbmp" ) ); $imgtype = getimagesize ( $filename ); $width = $imgtype [0]; $height = $imgtype [1]; $type = str_replace ( 'image/' , '' , $imgtype [ 'mime' ]); $func_create = $all_type [ $type ][ 'create' ]; $func_output = $all_type [ $type ][ 'output' ]; $x = $y =0; if (( $width * 100)>( $height * 120)) { $newwidth = ceil ( $height * 120/100); $newheight = $height ; $x = ( $width - $newwidth )/2; } elseif (( $width * 100)<( $height * 120)) { $newheight = ceil ( $width * 100/120); $newwidth = $width ; $y = ( $height - $newheight )/2; } else { $newheight = $height ; $newwidth = $width ; } // Load $thumb = imagecreatetruecolor( $newwidth , $newheight ); $source = $func_create ( $filename ); // Resize imagecopyresized( $thumb , $source , 0, 0, 0, 0, $newwidth , $newheight , $newwidth , $newheight ); // Output $func_output ( $thumb , 'a.jpeg' ); |
希望本文所述对大家PHP程序设计有所帮助。