PHP を使用して wordpress プラグインで画像のサイズを変更しようとしていますが、うまくいきません。PHPを使用してプロポーション的に画像のサイズを変更するにはどうすればよいですか?
それが可能かどうか誰か知っていますか?
ありがとう
wordpressの組み込みのサイズ変更機能を使用できます:
<?php image_resize( $file, $max_w, $max_h, $crop, $suffix, $dest_path, $jpeg_quality ); ?>
詳細については、http: //codex.wordpress.org/Function_Reference/image_resizeをご覧ください。
この関数は、imagePathをパラメーターとして受け取り、画像のサイズを変更するサイズを指定します。これにより、比率の制約付きで画像のサイズが変更されます。
サイズ=300とすると、3つのシナリオがあります
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;
}