本文实例讲述了php实现在服务器端调整图片大小的方法。分享给大家供大家参考。具体分析如下:
在服务器端完成图片大小的调整,会比在浏览器的处理有很多的好处。
本文介绍了PHP如何在服务器端调整图片大小。
代码包括两部分:
① imageResizer() is used to process the image
② loadimage() inserts the image url in a simpler format
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
|
<?php
function imageResizer( $url , $width , $height ) {
header( 'Content-type: image/jpeg' );
list( $width_orig , $height_orig ) = getimagesize ( $url );
$ratio_orig = $width_orig / $height_orig ;
if ( $width / $height > $ratio_orig ) {
$width = $height * $ratio_orig ;
} else {
$height = $width / $ratio_orig ;
}
// This resamples the image
$image_p = imagecreatetruecolor( $width , $height );
$image = imagecreatefromjpeg( $url );
imagecopyresampled( $image_p , $image , 0, 0, 0, 0, $width , $height , $width_orig , $height_orig );
// Output the image
imagejpeg( $image_p , null, 100);
}
//works with both POST and GET
$method = $_SERVER [ 'REQUEST_METHOD' ];
if ( $method == 'GET' ) {
imageResize( $_GET [ 'url' ], $_GET [ 'w' ], $_GET [ 'h' ]);
} elseif ( $method == 'POST' ) {
imageResize( $_POST [ 'url' ], $_POST [ 'w' ], $_POST [ 'h' ]);
}
// makes the process simpler
function loadImage( $url , $width , $height ){
echo 'image.php?url=' , urlencode( $url ) ,
'&w=' , $width ,
'&h=' , $height ;
}
?>
|
用法:
1
2
3
|
//Above code would be in a file called image.php.
//Images would be displayed like this:
<img src= "<?php loadImage('image.jpg', 50, 50) ?>" alt= "" />
|
希望本文所述对大家的php程序设计有所帮助。