勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ

smart_resize_imageで縦横の比率関係なく、固定リサイズ

   2024/04/18  PHP

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

  関連記事

Ajaxでプラグイン無しのファイルアップロード方法
Ajaxでプラグイン無しのファイルアップロード方法

画像ファイルを添付できて、尚且つAjaxを用いた非同期通信のフォームを作りたかっ ...

ブラウザ上で画像の切り抜き等編集を行う方法(Cropper.js)
ブラウザ上で画像の切り抜き等編集を行う方法(Cropper.js)

あるサイトで画像をアップロードし、その画像に対してブラウザ上で切り抜き等トリミン ...

summernoteにギャラリーから画像を挿入する機能を追加する方法
summernoteにギャラリーから画像を挿入する機能を追加する方法

summernoteの画像機能はデフォルトだと「画像ファイルを選ぶ」「URLから ...

バニラJS対応(jQuery非依存)の画像遅延読み込みライブラリ「lazysizes」の利用方法
バニラJS対応(jQuery非依存)の画像遅延読み込みライブラリ「lazysizes」の利用方法

あるサイトのコーディングデータを貰った際に「lazysizes」というJavaS ...

Lightboxで画像拡大時にダウンロードリンクを設置する方法
Lightboxで画像拡大時にダウンロードリンクを設置する方法

Lightboxで画像拡大時にダウンロードリンクを設置したいと要望を受けた。もち ...