勉強したことのメモ

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

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

   2024/01/12  PHP

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

  関連記事

PHPで画像にロゴをつける

フォームから送られてきた画像にロゴをつけたかった。 結論としてclass.upl ...

PHPで画像のフォーマット(拡張子)の変換

画像のアップロードでjpg/png/gif形式を受け付けつつ、 最終的にjpgで ...

フォルダにリンク制限をかける

imgというフォルダがあり、直接URLを叩いても 中身を見られないけど、同一サー ...

PHPで画像を上下反転させ保存する

やりたかった事は、下記の通り。 ・既にフォルダに保存されている画像を上下反転させ ...

PHPで画像にモザイクをかけて保存

やりたかった事はPHPで ・モザイク処理 ・元の画像とは別にファイル名をつけて保 ...