本文实例讲述了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程序设计有所帮助。