smart_resize_imageで縦横の比率関係なく、固定リサイズ
2024/01/12
PHPで縦横どちらかが指定の長さを超えた場合、比率を保ったままリサイズで使ったsmart_resize_imageだけども、これを使用しているページで、やっぱ固定リサイズにしないといけないという案件があった。
プラグイン外してPHP書かなあかんなぁ、面倒やなぁと思ったけど、引数の$proportionalをfalseにすることで解決できた。
具体的には、比率保たずに固定サイズにリサイズする場合、
smart_resize_image( TMP_PATH . $tmpData['img'.$i]['name'] . $tmpData['img'.$i]['ext'], $width = IMAGE_WIDTH, //ここに横サイズ。このケースでは定数で指定してた。 $height = IMAGE_HEIGHT, //ここに縦サイズ。これも定数で指定してた。 $proportional = false, $output = 'file', $delete_original = true, $use_linux_commands = false, $quality = 100 );
比率を保ってリサイズする場合、
$imageinfo = getimagesize(TMP_PATH . $tmpData['img'.$i]['name'] . $tmpData['img'.$i]['ext']);
if ($imageinfo[0] > $resize_list[$i]['width'] || $imageinfo[1] > $resize_list[$i]['height']) { //縦横どちらかが規定サイズを超えた場合はリサイズ
smart_resize_image(
TMP_PATH . $tmpData['img'.$i]['name'] . $tmpData['img'.$i]['ext'],
$width = IMAGE_WIDTH,
$height = IMAGE_HEIGHT,
$proportional = true,
$output = 'file',
$delete_original = true,
$use_linux_commands = false,
$quality = 100
);
}
になる。比率を保つ場合は、規定サイズ超えた時だけリサイズでいいかなと思うので、if文を入れてます。
関連記事
-
PHPで画像のフォーマット(拡張子)の変換
画像のアップロードでjpg/png/gif形式を受け付けつつ、 最終的にjpgで ...
-
PHPで画像アップロード、リサイズ、形式変換(jpg->webp等)はclass.upload.phpが便利
今までPHPで画像関連の処理を行う場合、リサイズの時のみsmart_resize ...
-
PHP側での画像最大アップロードサイズの確認
画像がアップロードできず、恐らくサイズ指定にひっかかっているので 最大サイズを調 ...
-
フォルダにリンク制限をかける
imgというフォルダがあり、直接URLを叩いても 中身を見られないけど、同一サー ...
-
独自タグを変換して画像を表示させる
やりたい事↓↓ ----- {$IMG1}~{$IMG5}までの独自タグがある。 ...