2

過去に、私はImage Field Moduleを使用して、ユーザーに特定の寸法の画像を提供するよう要求しましたが、うまくいきました。私は新しいメディア ライブラリ ピッカー フィールドが気に入っています。画像エディター モジュールと統合されているため、トリミングやサイズ変更が可能です。

私がやりたいのは、メディア ライブラリ ピッカー フィールドを使用することですが、ユーザーは画像を特定のサイズにトリミングおよび/またはサイズ変更する必要があります。そのように構成する方法はありますか?これまでのところ、私が思いついた最善の方法は、画像のサイズを目的のサイズに変更することをユーザーに提案するヘルプ テキストをユーザーに提供することです。

画像を特定のサイズに合わせる必要がある場合は、画像フィールドをそのまま使用する必要がありますか?それとも、メディア ライブラリ ピッカー フィールドを使用するより良い方法はありますか?

4

1 に答える 1

4

Orchard 1.7 以降のメディア処理機能を使用して、画像に特定のサイズを指定することはできませんが、正しいサイズで表示されるようにすることはできます。

Orchard 1.7 では、メディア プロファイルの概念が導入されました。これにより、多数の画像変換を効果的に作成し、それらに名前を付けて、サイト全体で任意に使用できます。

最近のプロジェクトで、Orchard サイトの紹介ページ用に大量の顧客プロフィール写真を受け取りました。それらはさまざまなサイズで提供されており、少なくとも 2 つの異なるサイズが必要であることはわかっていました (1 つはメインの紹介ページ用で、もう 1 つは他のページに表示される紹介ウィジェット用です)。

管理者ダッシュボードで、Media -> Profiles に移動し、Customer_Profile_Regular という名前の新しいメディア プロファイルを作成し、サイズ変更フィルターを追加して 100x100px に縮小しました (サイズ変更フィルターは非常に柔軟で、実装することで独自のフィルターを簡単に作成できます)。IImageFilterProviderインターフェイス)。

2 番目のプロファイルである Customer_Profile_Small についても同じことを行い、50x50 に縮小しました。

次に、Shape Tracing を使用して、既存のメディア ライブラリ ピッカー フィールドの表示形状をオーバーライドし、次のように置き換えました。

@{
   var imagesField = Model.ContentItem.Testimonial.CustomerProfile;
}
@if(imagesField.MediaParts.Any()) {
    <div class="customer-profile-image">
        @Display.MediaUrl(Profile: "Customer_Profile_Regular", Path: imagesField.MediaParts.First().MediaUrl)
    </div>
}

証言ウィジェットの場合は、同様の形状のオーバーライドを作成し、別のプロファイル名を指定するだけでした。

これで、任意の画像をメディア ライブラリにアップロードして、お客様の声の顧客プロファイル画像として使用できるようになりました。Orchard は、使用するように指示したプロファイルに基づいて画像のサイズを自動的に変更 (またはその他の操作を実行) します。その結果はサイトの Media フォルダーに保存され、必要な場合にのみ再生成されます。

于 2013-10-16T09:20:25.560 に答える