web-dev-qa-db-ja.com

Wordpressはサイズを変更できますか BMP ファイル?

私が遭遇したばかりの興味深い状況。

私が開発しているサイトには、新しい画像がアップロードされるたびに作成したい特定の画像サイズを定義したものがあります。現在、75 x 75の特定のサムネイルサイズと150 x 150ピクセルの中サイズの画像を定義したとしましょう。

内蔵のメディアアップローダを使用して新しい画像をアップロードすると仮定すると、Wordpressは元の画像を自分のfunctions.phpファイルで指定した追加の画像サイズ(この場合は75x75と150×150ピクセルの画像).

まず第一に、上に示した例は確かに完璧に機能しており、私はその結果に非常に満足しています。

私が気づいたことはしかし あなたがBMPファイルを選ぶとき 自動リサイズをアップロードすることが起こらないということです。

ここでの私の目的は、この問題の解決策を見つけようとしているときに、他の誰がこの問題に気付いたのかを突き止めることです。大きなbmpファイルがアップロードされたときでも、そのコードが

the_post_thumbnail( array(50,50), 'class=alignleft' );

50 x 50ピクセルの画像が表示されます。

念のために言っておきますが、私はこの問題がbmp画像に関連していることを確認しました。元のbmp画像を取って、それをphotoshopでjpgおよびpngファイルとして保存してから...どちらの場合も、変換された各ファイルをアップロードした後、まったく同じ画像が正しくサイズ変更されていることに気付きました。

また、bmpファイルイメージがアップロードされたときにそのファイルの実際のアップロードDIDがメディアマネージャで行われるのは、元の(フルサイズの)イメージのみが投稿に挿入されて確認できることを示します。メディアアップロードフォルダにも単一の画像しか表示されませんでした。

任意のガイダンス、助けや診断は大歓迎です!

2

いいえ、wordpressはBMPファイルのサイズを変更できません。 WebブラウザでBMPファイルを使用するのは意味がないことに注意してください。これは、多数のWebブラウザで表示できないためです。

Wordpressでサポートされており、インターネットブラウザで広くサポートされているファイルタイプは、GIF、JPG、およびPNGです。

これらのフォーマットは画像データを圧縮するため、インターネットでの使用に最適化されています。 BMPは一般的な画像フォーマットですが、ファイルサイズが大きいためインターネットでは使用できません。

5
hakre

これは 他のスレッド からのもので、許可するファイルタイプを制限できるコードが付いています。

add_filter('wp_handle_upload_prefilter', 'yoursite_wp_handle_upload_prefilter');
function yoursite_wp_handle_upload_prefilter($file) {
// This bit is for the flash uploader
if ($file['type']=='application/octet-stream' && isset($file['tmp_name'])) {
$file_size = getimagesize($file['tmp_name']);
if (isset($file_size['error']) && $file_size['error']!=0) {
  $file['error'] = "Unexpected Error: {$file_size['error']}";
  return $file;
} else {
  $file['type'] = $file_size['mime'];
}
}
list($category,$type) = explode('/',$file['type']);
if ('image'!=$category || !in_array($type,array('jpg','jpeg','gif','png'))) {
$file['error'] = "Sorry, you can only upload a .GIF, a .JPG, or a .PNG image file.";
} else if ($post_id = (isset($_REQUEST['post_id']) ? $_REQUEST['post_id'] : false)) {
if (count(get_posts("post_type=attachment&post_parent={$post_id}"))>0)
  $file['error'] = "Sorry, you cannot upload more than one (1) image.";
}
return $file;
}

コードは MikeSchinkel です。

1
Lars Koudal