web-dev-qa-db-ja.com

トリミングしないで画像のサイズを変更する

アップロード時に画像のサイズを変更するためのハックを探しています(Wordpressでアップロードされたすべての形式の画像)が、切り抜かないでください

私はそれが多くの人々にとって助けになることができると信じているので、私はこの質問に恩恵を受けるでしょう。

理想的な解決策は、プラグインとして、Media Settings Pageで既に指定されている画像サイズを使用することです(options-media.php/Thumbnail、Medium、Large)。

私は理想が時々できないことを知っているので、最も近い答えは受け入れられたものになるでしょう

2
user983248

カスタム画像サイズ

トリミングせずにサイズ変更することは、 add_image_size() を介してすでにコア機能の一部です。

最後のパラメータに注意してください。

<?php add_image_size( $name, $width, $height, $crop ); ?>

Codexエントリは、以下のように$cropパラメータを記述します。

$crop

(ブール値)(オプション)画像をトリミングするかどうか。 False - ソフトプロポーショナルクロップモード。 True - ハードクロップモードデフォルト:false

このオプションはhard-cropbox-resizeのように記述するのが好きです。ハードクロップは最も抑制された寸法に基づいて画像をトリミングしますが、ボックスリサイズは元の寸法の比率を維持しながら画像のサイズを変更するだけです。

したがって、 ボックスサイズ変更された イメージサイズを作成するには、単に次のように定義します。

add_image_size( 'image-size-name', $width, $height, false );

この動作は default 設定であることに注意してください。ハードクロップするには、 に明示的に $cropを指定してtrueにする必要があります。

サムネイルを投稿

post-thumbnailの画像サイズをbox-resizeに変更するのも同様です。単純に set_post_thumbnail_size() を使用します。これには$cropパラメータもあります。

 <?php set_post_thumbnail_size( $width, $height, $crop ); ?>

予約済み画像サイズ

'medium''large'の画像サイズは、ハードクロップではなくボックスサイズになっているはずです。

4
Chip Bennett