0

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

有谁知道这是否可能?

谢谢

4

2 回答 2

1

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

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

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

于 2012-05-26T14:39:55.637 回答
0

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

假设 size = 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;
}
于 2012-05-26T09:55:28.160 回答