使用php在我的wordpress插件中调整图像大小

时间:2012-05-26 08:38:45

标签: php wordpress

我正在尝试使用php在我的wordpress插件中调整图像大小,但它们不起作用。如何使用php将图像调整为propotion?

任何人都知道这是否可能?

谢谢

2 个答案:

答案 0 :(得分:1)

您可以使用wordpress内置调整大小功能:

<?php image_resize( $file, $max_w, $max_h, $crop, $suffix, $dest_path, $jpeg_quality ); ?>

您可以在此处找到更多详细信息:http://codex.wordpress.org/Function_Reference/image_resize

答案 1 :(得分:0)

此函数将imagePath作为参数以及您希望它调整图像大小的大小。这将调整具有比例约束的图像

假设尺寸= 300 那么会有三种情景

1)如果图像的高度大于宽度,则其高度将为300

2)如果宽度大于其宽度将为300

3)如果图像的比例为1:1,则其高度和宽度均为300

function resizeImage($imagePath,$size)
{
    $sizeData = getimagesize($imagePath);
    $width = $sizeData[0];
    $height = $sizeData[1];     

    # Loading image to memory according to type
    switch ( $sizeData[2] ) {
      case IMAGETYPE_GIF: $src = imagecreatefromgif($imagePath); break;
      case IMAGETYPE_JPEG: $src = imagecreatefromjpeg($imagePath); break;
      case IMAGETYPE_PNG: $src = imagecreatefrompng($imagePath); break;
      default: return false;
    }
    if(!$src)
    {
        return false;
    }
    if($height >= $width)
    {
        $newheight = $size;
        $newwidth = ($newheight*$width)/$height;            
    }
    else
    {
        $newwidth = $size;
        $newheight = ($height/$width)*$newwidth;            
    }       
    $tmp = imagecreatetruecolor($newwidth,$newheight);

    imagecopyresampled($tmp,$src,0,0,0,0,$newwidth,$newheight,$width,$height);

    # Writing image according to type to the output destination
    switch ( $sizeData[2] ) {
      case IMAGETYPE_GIF: imagegif($tmp, $imagePath); break;
      case IMAGETYPE_JPEG: imagejpeg($tmp, $imagePath, 100); break;
      case IMAGETYPE_PNG: imagepng($tmp, $imagePath, 9); break;
      default: return false;
    }
    imagedestroy($src);
    imagedestroy($tmp);
    return true;
}