smart_resize_imageで縦横の比率関係なく、固定リサイズ
2024/04/18
PHPで縦横どちらかが指定の長さを超えた場合、比率を保ったままリサイズで使ったsmart_resize_imageだけど、こちらを使用しているページで固定リサイズにしないといけないという案件があった。色々試すと引数の$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で画像を上下反転させ保存する
やりたかった事は、下記の通り。 ・既にフォルダに保存されている画像を上下反転させ ...
-
PHPでファイル書き込み時に「failed to open stream: HTTP~~」エラー
PHPでファイルを書き込む際に「failed to open stream: H ...
-
MySQLとPHPの「image-comparator」ライブラリを使用して類似画像検索を実装する方法
先日PHPで画像を比較して類似度を算出する「image-comparator」ラ ...
-
formのinput="file"でディレクトリを選択させ、ディレクトリ内のファイルを全てアップロードする方法
フォームで複数のファイルをアップロードしたい場合、input="file"を複数 ...
-
PHPで画像にモザイクをかけて保存
やりたかった事はPHPで ・モザイク処理 ・元の画像とは別にファイル名をつけて保 ...