web-dev-qa-db-ja.com

cropがtrueに設定されていても、add_image_sizeが拡大縮小されている

私は1000 x 648の画像を400 x 400にトリミングしようとしています。私はfunctions.phpでこのコードを使っています

add_theme_support( 'post-thumbnails' );
add_image_size('shop-size', 400, 400, array(center,center) );
add_image_size('shop-size2', 401, 400, true );

それから私は再生成プラグインに行き、それを実行します。それを実行している間、私は何が起こっているのかを調べるためにwp-contentアップロードを開きます。

拡大縮小された400 x 259の画像が作成されるのを見ます。再生成プラグインは、ショップサイズに合わせて400×400をトリミングして、変換しないと言っています。

私はGdがこれでロードされているかどうかをチェックし、それは 'Gd loaded'を返します。

<?php if (extension_loaded('Gd')) 
     { 
         echo "Gd loaded"; 
     } else { 
         echo "not loaded"; 
} ?>

私もこのようにafter_theme_setupにそれをフックしようとしました:

function add_custom_sizes() {
    add_image_size( 'map-size', 199, 199, array('center','center') );
    add_image_size('shop-size', 599, 599, array('center','center') );
    add_image_size('discover-size', 749, 620, array('center','center'));
    add_image_size( 'map-size1', 198, 199, true );
    add_image_size('shop-size1', 598, 599, true );
    add_image_size('discover-size1', 748, 620, true);
}

add_action('after_setup_theme','add_custom_sizes'); 

しかし、私は再生成するので、それはまだ198×199の代わりに198×165を作ります(768 x 641から)

親は繁栄のテーマで「上昇」と呼ばれています。私は彼らに連絡しましたが、彼らは彼らが開発者の質問をサポートしていないと言いました。

親は一度だけadd_image_sizeを使います、私はこれを取り除こうとしました、しかし、私は切り抜き問題の代わりにまだスケーリングをしました。

以下にriseファイルを含めました。私は彼らがある種のカスタムスケーリングのことをやる気がありますか?そして、私はこれをどうにかして乗り越えなければならないでしょうか?

繁栄画像最適化ファイル - https://Pastebin.com/1QEa6YJv 繁栄機能 - https://Pastebin.com/pAqBt285

誰かが私が私が悪いことをしていることを理解するのを手伝ってくれる?助けてくれてありがとう。

3

あなたの質問から私はあなたが画像をアップロードするときに固定サイズのトリミング画像が欲しいという理由で、なぜあなたはwp_get_image_editorを使用しないでください。私はこのコードを使ったので私は固定サイズの画像をトリミングしたい私のプロジェクトでそれを使用しました。

$path = $newPath['basedir'].'/newImgas/';
$cropfile = uniqid() . '.png';
$cropfilename = $path.$cropfile;
$cropImage = home_url(). '/wp-content/uploads/newImgas/'.$cropfile;
$c_image = wp_get_image_editor($newImage);
if ( ! is_wp_error($c_image) ) {
  $c_image->resize( 600, 600, TRUE);
  $c_image->save( $cropfilename );
}

あなたは例 ここ を見つけることができます。それがあなたが望んでいたものでないなら私に答えてください。

1
Vinit

私はあなたの問題は、あなたが高い優先順位を設定する必要があることであると思います(101、またはそれが解決するなら999を試してみてください):

add_action('after_setup_theme', 'add_custom_sizes',  101 ); 
1
T.Todua

Gdがロードされているという事実は、Gdが実際に画像の処理に使用されているという意味ではありません。あなたが与えたPastebinコードから、あなたのテーマは Kraken画像オプティマイザー にバンドルされているか、あるいは別の方法でテーマにバンドルされていると結論づけます。

add_image_size を使うのは配列にデータを置くだけなので、実際に使うのは画像処理関数次第です。通常これは、 wp_save_image という関数によって行われます。これにより、任意の画像エディタを使用することができます($img = wp_get_image_editorと書かれている行で)。

だから、おそらくKrakenの編集者はトリミング設定を無視しています。テーマに応じて、プラグイン設定を見つけて変更する必要があります。 Krakenは有料スキームなので、制限があるかもしれません。

あるいは、 wp_image_editors フィルタを使用して画像エディタをGdに戻すこともできますが、テーマがKrakenをどのように使用しているのかわからないので、これがどのような効果をもたらすのかわかりません。

1
cjbj