使用php直接从url调整图像大小

时间:2014-01-15 14:02:48

标签: php image-processing

我不确定是否可以这样做,所以发布在这里。我有一个存储在网络服务器中的图像。例如http://www.abc.com/myimage.png

现在我想重新调整该图像的大小,但没有将它放在我的本地。所以它将是从网址调整大小的直接图像。

如果有任何指南或示例,请建议。

2 个答案:

答案 0 :(得分:1)

使用phpthumb。它可以动态创建任何图像的缩略图。

http://phpthumb.sourceforge.net/

答案 1 :(得分:1)

如果您不想使用GD库,可以使用此功能。

提醒

Resizing images on the fly can really slow down the page

代码:

function getImageXY( $image, $imgDimsMax=140 ) {
    $top = 0;
    $left = 0;

    $aspectRatio= 1;    // deafult aspect ratio...keep the image as is.

    // set the default dimensions.
    $imgWidth   = $imgDimsMax;
    $imgHeight  = $imgDimsMax;

    list( $width, $height, $type, $attr ) = getimagesize( $image );

    if( $width == $height ) {
        // if the image is less than ( $imgDimsMax x $imgDimsMax ), use it as is..
        if( $width < $imgDimsMax ) {
            $imgWidth   = $width;
            $imgHeight  = $height;
            $top = $imgDimsMax - $imgWidth;
            $left = $imgDimsMax - $imgWidth;
        }
    } else {
        if( $width > $height ) {
            // set $imgWidth to $imgDimsMax and resize $imgHeight proportionately
            $aspectRatio    = $imgWidth / $width;
            $imgHeight      = floor ( $height * $aspectRatio );
            $top = ( $imgDimsMax - $imgHeight ) / 2;
        } else if( $width < $height ) {
            // set $imgHeight to $imgDimsMax and resize $imgWidth proportionately
            $aspectRatio    = $imgHeight / $height;
            $imgWidth       = floor ( $width * $aspectRatio );
            $left = ( $imgDimsMax - $imgWidth ) / 2;
        }
    }

    return '<img src="' . $image . '" width="' . $imgWidth . '" height="' . $imgHeight . '" style="position:relative;display:inline;top:'.$top.'px;left:'.$left.'px;" />';
}

假设最大图像尺寸为140像素。您可以根据自己的意愿进行更改。

希望这有帮助。