2016-06-19 5 views
1

私はmedia type > Image > Upload Imageにイメージクロッパーを使用しています。これは、メディアライブラリで応答性の高いイメージを作成するための最良のソリューションと思われます。Umbraco GetCropUrlが私にイメージクロッパーで有効なURLを与えていない

しかし、これは今私の画像のURLを取得する方法を見つける問題を私に提示します。私はこのコードを使用する通常の画像クロッパーズため

:私は、画像のトリミングを取得するには、この方法を試してみてください場合は

@Model.Content.GetCropUrl("image", "my-crop-name") 

を私が代わりにこれを取得:

<img src="Umbraco.Web.Models.DynamicPublishedContent?mode=pad&rnd=131108182860000000" /> 

は私が得るために期待していました私が指定したクロップを持つ画像URL。これは、標準的な画像のクロッパーではうまく動作しますが、メディアライブラリーの画像では正常に動作しません。何故ですか?そして、これらの画像のクロップURLはどのように取得する必要がありますか?

私は、画像クロッパーデータ型なしでメディアlibaryから直接画像についてはv7.4.2

+2

デフォルトのファイルアップロードプロパティをImageメディアタイプのImage cropperプロパティに置き換えたことを確認できますか?この場合、選択したイメージを 'IPublishedContent'として取得し、その上で' GetCropUrl() 'メソッドを呼び出す必要があります。最初の引数はImage cropperプロパティのエイリアスである必要があります。これはオプションで、デフォルトでは 'umbracoFile'というエイリアスを持つプロパティを探します。 –

+1

@RobertPurcellそれは解決策です!私はそれを受け入れるために答えとしてそれを追加したいですか?そうでない場合は、自分で追加します。 – Jon

+0

ありがとうジョン、私はちょうど答えを投稿しました –

答えて

4

メディアセクションの画像のクロップURLを取得するには、まず画像をIPublishedContentとして取得する必要があります。次のようにあなたはこれを行うことができます。

var imageId = Model.Content.GetPropertyValue<int>("image"); 
var image = Umbraco.TypedMedia(imageId); 

それとも、優れたCore Property Value Converters packageを使用している場合は、変換を実行することなく、それを直接取得することができます。

var image = Model.Content.GetPropertyValue<IPublishedContent>("image"); 

あなたはその後、GetCropUrl()メソッドを呼び出す必要がありますあなたのイメージに。あなたは画像クロッパーのプロパティでデフォルトのアップロードのプロパティを置き換え、そして同じ(umbracoFile)エイリアスプロパティを守ってきた場合、あなただけの作物の別名に渡すことができます。

var cropUrl = image.GetCropUrl("my-crop-name"); 

もしあなたの画像クロッパーのプロパティの別名

var cropUrl = image.GetCropUrl("imageCropperAlias", "my-crop-name"); 
+0

偉大な答え、もう一度ありがとう。 – Jon

1

を使用しています。私はこのような何かを使用します:

<img src="@photo.Url?mode=crop&width=634&height=634" alt="@photo.Name" /> 

それほどきれいですが、それは完全に動作します。

+0

これは、作物を得る興味深い方法ですが、それはユーザーが焦点を定義することはできません、確かに?焦点を正しく設定した作物であるため、私が定義した作物を使用したい。 – Jon

+0

さらに多くのパラメータがあります。例:crop = 0.5793905628681395,0,0,0&cropmode = percentage&width = 645&height = 246作物作業中にそれらを見ることができます。 –

関連する問題