image_style_url を使用して、管理者インターフェイスから追加した画像のサムネイルを取得しています。
// $foo->field_picture['und'][0]['uri'] has value public://foo.jpg
image_style_url('foo-thumb', $foo->field_picture['und'][0]['uri']);
APIは、URLがリクエストされたときに画像が作成されると述べています。ただし、ページにアクセスしても画像は表示されません(404)。関数から返されたURLは整形式のようですが、ファイルは作成されていません。
「foo-thumb」フォルダーはパブリックデータフォルダー内にあり、ファイル権限はOKである必要があります。画像キャッシュをフラッシュしようとしましたが(drupal image-flush foo-thumb)、それでも結果はありません。
何か案は?
差出人: https://drupal.org/drupal-7.20-release-notes
さらに、標準のimage_style_url()API関数を使用せずにプログラムによって画像派生物へのリンクを生成するコードは、必要なトークンがURL。
代わりに、次のようなことができます。
$image_uri = $node->field_image[LANGUAGE_NONE][0]['uri']; // or any public://my_image
$style = 'my_style';
$derivative_uri = image_style_url ($style, $image_uri);
$success = file_exists($derivative_uri) || image_style_create_derivative(image_style_load($style), $image_uri, $derivative_uri);
$new_image_url = file_create_url($derivative_uri);
よくある間違いの1つは、URIが適切にフォーマットされていないことです。 URIパラメータの前にpublic://
が付いていることを確認してください。
$imageUrl = image_style_url('style_name', 'myimage.jpg');
$imageUrl = image_style_url('style_name', $node->field_x[$node->language][0]['filename']);
これはスタイル付き画像(画像トークン付き)へのURLを出力しますが、以前に生成されていない場合はスタイル付き画像を生成しません。
$imageUrl = image_style_url('style_name', file_build_uri('myimage.jpg')); // changes to 'public://myimage.jpg'
$imageUrl = image_style_url('style_name', $node->field_x[$node->language][0]['uri']);
これにより、上記と同様にスタイル付きURLが出力され、スタイル付き画像が存在しない場合は生成されます。
パブリックファイルシステムのパスが間違っていました。
$fid = file_load($field_yuorfield_fid);
$image_uri = image_style_url('yuor_style', $fid->uri);
fopen($image_uri, 'r');
ここではhtmlを作成するためにURLを使用できます
別のオプションは、theme関数を使用することです。
$img = theme('image_style', array('style_name' => 'your_image_style_machine_name', 'path' => $node->field_image['und'][0]['uri']));
URLを返すのではなく、imgのHTMLを返します。
foo-thumb
スタイルであることを確認してください。admin/config/media/image-styles
で確認できます。
image_style_url の最初のパラメーターはスタイル名であり、フォルダー名ではありません。
画像を表示しようとしたときに404を受け取った場合は、画像のスタイル名が正しくない可能性があります。私の場合、Image Stylesに表示されたスタイル名は、スタイル名のマシン名ではありませんでした。スタイルにカーソルを合わせると、URLにスタイル名のマシン名が表示されます。マシン名に変更するか、現在のものを削除して、必要な名前で再作成してください。