Pocket
LINEで送る

画像リサイズのコードが変だったので直した。

list($ow, $oh, $type) = getimagesize($file_path);
if(empty($ow) || empty($oh)) return false;

$x = 0;
$y = 0;

if($ow / $nw > $oh / $nh){ //幅のがはみだしてる
	$w = $oh * $nw / $nh;
	$x = ($ow - $w) / 2;
	$ow = $w;
}else{ //高さのがはみだしてる
	$h = $ow * $nh / $nw;
	$y = ($oh - $h) / 2;
	$oh = $h;
}

nwとnhは、リサイズしたい幅と高さです。$file_pathは現在の画像のパスです。$owと$ohに現在の画像の幅と高さをとります。はみ出し方が控えめな方を基準に、リサイズしたい比率に大きくはみ出してる方を合わせます。大きくはみ出してる方は中央の画像を切り取るようにします。これだと小さい画像はリサイズ画像のサイズに合わせて拡大されます。

Pocket
LINEで送る


コメントください

関連記事

プログラミング

Go言語によるビットコインのフルノード実装btcdを調べる(2)

btcdを実行した際のプログラムの流れを最初から確認してみます。 se 続きを読む …

プログラミング

Go – leveldb

Goで使えるLevelDB。 syndtr/goleveldb ドキュ 続きを読む …

%d人のブロガーが「いいね」をつけました。