
スタンドアロンの画像ビューアで、 ImageSource (URL、base64、または生のバイト)をレンダリングし、その上にオプションのクロームを重ねます:枠付きフレーム、回転/反転/ズーム/フルスクリーン機能付きのツールバー、ダウンロードボタン、トリミング操作。列縛り編集(ドロップゾーン、アップロード、検証)には代わりに ImageEdit を使います。
デフォルト — 親と同じくらいの <img> 。クロームもありません。

枠、パッド、コーナーのダウンロードボタンを追加します。これが ImageEdit が使う読み取り専用プレビュー形状です。

回転(CCW/CW)、フリップ(H/V)、ズームイン/アウト、リセット、フルスクリーン、ダウンロードボタンを追加できます。画像はホイールズーム(カーソルに固定)に反応し、1×を超えてズームするとドラッグ・トゥ・パンに反応します。

アスペクト比ピッカーとクロップボタンを有効にします。画像を左ドラッグすると、選択したアスペクトに制約された線状の選択長方形が描かれます。トリミングを押すと、選択部分がオフスクリーンのキャンバスからPNGにラスター化され、 OnCropAppliedが起動します。ビューアはトリミングされた結果を表示します。リセットすると元のソースに戻ります。

名称 | 種類 | デフォルト | 概要 |
|---|---|---|---|
Alt | string? | アクセス可能な代替テキスト。設定されていない場合はデフォルトで ImageViewer.FileName になります。 | |
Croppable | bool | False | これが真である場合( ImageViewer.Toolbarも真である)、作物間の相互作用を可能にします: ツールバーにはアスペクト比ピッカーとクロップボタンが追加され、左ドラッグ 画像は、破線で選択された長方形を描きます。Pressing Cropは選択をラスタライズします PNGに表示し、ImageViewer.OnCropApplied発射します。ビューアは 結果を切り取った。リセットすると元のImageViewer.Sourceに戻ります。 |
Downloadable | bool | False | もしそうであれば、ダウンロードUXを露出させます:
|
Fallback | RenderFragment? | ImageViewer.Sourceがnullのときにレンダリングされます。 | |
FileName | string? | ダウンロード時に使われ、デフォルトの ImageViewer.Alt テキストとして使われるファイル名。 ソースの ImageSource.FileName、そうでなければ | |
Framed | bool | False | 真の場合、画像をFluentトークン付き枠付きフレームマッチングでラップします これは |
IsDirty | bool | False | 現在の汚れ状態 — 表示画像が ベースライン(回転、ひっくり返し、またはクロップを施したもの)。純粋なビュー状態(ズーム、パン) 単独でダーティを切り替えることはありません。 |
OutputFormat | ImageOutputFormat | Auto | ラスタライズされたトリミング結果(およびコミット画像)の出力フォーマット バイトは ImageViewer.CommitAsync)。デフォルト ImageOutputFormat.Auto — この形式は ソースファイルの拡張子(JPEG入力はJPEGのままで、それ以外はすべて送信します) PNGです。ロスレス書き込みのためにピン ImageOutputFormat.Png 出典や ImageOutputFormat.Jpeg に関わらず サイズ感度の写真フロー。 |
OutputQuality | double | 0.9 | [ ImageViewer.OutputFormat は ImageOutputFormat.Png (PNGはロスレスで、 クオリティノブ)を担当しています。デフォルトは |
Source | ImageSource? | レンダリングする画像データ。nullの場合、 ImageViewer.Fallback がレンダリングされます 代わりに(またはフォールバックがなければ何も使えない)。 | |
Toolbar | bool | False | trueの場合は、画像の上にツールバーを表示し、回転/反転/ズーム/ リセット/フルスクリーンコントロール。ラッパー要素は、以下に関係なく含意します。 ImageViewer.Framed。画像のドラッグ・トゥ・パンが使えるようになると、 1×を一気に過ぎていった。 |
AltImageViewer.FileName になります。CroppableImageViewer.Toolbarも真である)、作物間の相互作用を可能にします: ツールバーにはアスペクト比ピッカーとクロップボタンが追加され、左ドラッグ 画像は、破線で選択された長方形を描きます。Pressing Cropは選択をラスタライズします PNGに表示し、ImageViewer.OnCropApplied発射します。ビューアは 結果を切り取った。リセットすると元のImageViewer.Sourceに戻ります。 DownloadableImageViewer.Toolbarを使うと、ツールバーにダウンロードボタンが追加されます。ImageViewer.Framed(ツールバーなし)では、隅にオーバーレイボタンを表示します。FallbackImageViewer.Sourceがnullのときにレンダリングされます。FileNameImageViewer.Alt テキストとして使われるファイル名。 ソースの ImageSource.FileName、そうでなければ FramedIsDirtyOutputFormatImageViewer.CommitAsync)。デフォルト ImageOutputFormat.Auto — この形式は ソースファイルの拡張子(JPEG入力はJPEGのままで、それ以外はすべて送信します) PNGです。ロスレス書き込みのためにピン ImageOutputFormat.Png 出典や ImageOutputFormat.Jpeg に関わらず サイズ感度の写真フロー。OutputQualityImageViewer.OutputFormat は ImageOutputFormat.Png (PNGはロスレスで、 クオリティノブ)を担当しています。デフォルトは SourceImageViewer.Fallback がレンダリングされます 代わりに(またはフォールバックがなければ何も使えない)。ToolbarImageViewer.Framed。画像のドラッグ・トゥ・パンが使えるようになると、 1×を一気に過ぎていった。名称 | 種類 | 概要 |
|---|---|---|
OnCancel | EventCallback | ImageViewer.Toolbarと合わせると、赤色が禁止されます。 ツールバーの右端にある丸ボタンです。常に有効にしています。 消費者は通常、編集モードを終了して進行中の破棄に使います 変形 — ビューアは自動的に何かを元に戻しません。 再マウント(例:ImageViewer.Sourceを次のように更新してください。 内部の状態を消去する。 |
OnClick | EventCallback<MouseEventArgs> | |
OnCropApplied | EventCallback<CropResult> | 使用者が作物を発動させると発射されます。ラスタ化されたPNGペイロードを受け取ります。 |
OnDirtyChanged | EventCallback<bool> | ImageViewer.IsDirtyが変わるたびに発射します。親のセーブボタンを操作します 投票なしで有効状態。 |
OnSave | EventCallback | ImageViewer.Toolbarと組み合わせると、緑色のチェックマークが表示されます ツールバーの右端にあるボタンです。ボタンは無効化されています。 視聴者はクリーンで、救うものは何もない。クリックハンドラーが火をつけています。 そして忘れる;消費者は通常、通話を行います ここから表示画像をベイクしてImageViewer.CommitAsync 永続性のためにバイト。 |
OnCancelImageViewer.Toolbarと合わせると、赤色が禁止されます。 ツールバーの右端にある丸ボタンです。常に有効にしています。 消費者は通常、編集モードを終了して進行中の破棄に使います 変形 — ビューアは自動的に何かを元に戻しません。 再マウント(例:ImageViewer.Sourceを次のように更新してください。 内部の状態を消去する。OnClickOnCropAppliedOnDirtyChangedImageViewer.IsDirtyが変わるたびに発射します。親のセーブボタンを操作します 投票なしで有効状態。OnSaveImageViewer.Toolbarと組み合わせると、緑色のチェックマークが表示されます ツールバーの右端にあるボタンです。ボタンは無効化されています。 視聴者はクリーンで、救うものは何もない。クリックハンドラーが火をつけています。 そして忘れる;消費者は通常、通話を行います ここから表示画像をベイクしてImageViewer.CommitAsync 永続性のためにバイト。 名称 | パラメータ | 種類 | 概要 |
|---|---|---|---|
CommitAsync | Task<CropResult> | 現在表示されている画像をベイクします — 回転も含めて FLIP — ソース解像度のPNGに変換します。は ビューアはクリーン(保存するものがない)か、JSハンドルが 執着している。まだ決まっていない進行中の作物の選択は クロップボタンは意図的に無視されます。先にトリミングをクリックしてください。 それを組み込んでほしいのです。 | |
HandleContainerResize | ImageMeasurements newMeasurements | void | コンテナリサイズコールバック — JS側のResizeObserverがこれを発射します(rAF- 画像コンテナのボックスが状態外から変化したときにdebounced) (親が伸びたりサイズを変えたりして、パネルがリフローされている状態)。イメージは再フィットします Object-Fit:Containを通じて、トリミング選択のコンテナピクセルはNoとコordレーションされます 同じ画像内容で長く並ぶと、同じ方法で再アンカーしてください キャプチャー・古い→リフレッシュ→新しい往復 HandleFullscreenChange(System.Boolean) 用途:PRE-RESIZEに対してナチュラルピクセル座標の選択をスナップショット まだ保持している測定値は、サイズ変更後の測定値にリフレッシュします。 返してくれ。ドラッグ中にスキップされた — ドラッグハンドラーが選択ジオメトリを所有しています (そしてドラッグスタート時のクランプウィンドウもキャプチャーしました)。 |
HandleFullscreenChange | bool isFullscreen | Task | ドキュメントレベルの |
HandleKeyDown | string key bool shiftKey | Task | 編集モードショートカットのJS駆動キーダウンコールバック。火だけ 主張するキー(キー+修飾子状態によるJSシムフィルター)に対して、 つまり、この方法自体をゲート化する必要はありません。
|
HandleWheel | double deltaY double cursorRelX double cursorRelY | Task | ホイールズームコールバック — JSは各スクロールティック(deltaY)と カーソルがコンテナセンターからずれています。アンカーズーム数学は以下の通りです Reactの:pan_new = (1 − r) ·カーソルレル + r ·pan_prev r = zoom_new / zoom_prev。カーソルを同じ画像のローカルに保つ ズームステップの向こう側を指さします。 |
ResetDirtyAsync | Task | 表示画像を変えずにビューアをクリーンにマークします。その後の使用 セーブ成功:切り取ったバイトが保存されたバージョンとなり、今後は 変化はこの状態と照らして評価されるべきです。表示を元に戻すために 画像を元の ImageViewer.Source にし、汚れをクリアし、リセットを使います ツールバーボタンやアップデート ImageViewer.Source。 | |
RevertCrop | void | ローカルクロップオーバーレイのみをドロップし、元のものに戻します ImageViewer.Source。回転やフリップは使用者の位置に留まります。 もし前回のセーブ以降に変わったなら、 ImageViewer.IsDirty 真実であり続けてください。ツールバーのリセットボタン(または更新)を使ってください ImageViewer.Source)完全な改宗。 |
CommitAsyncHandleContainerResizeHandleFullscreenChange(System.Boolean) 用途:PRE-RESIZEに対してナチュラルピクセル座標の選択をスナップショット まだ保持している測定値は、サイズ変更後の測定値にリフレッシュします。 返してくれ。ドラッグ中にスキップされた — ドラッグハンドラーが選択ジオメトリを所有しています (そしてドラッグスタート時のクランプウィンドウもキャプチャーしました)。HandleFullscreenChangeHandleKeyDownImageViewer.OnCancelを呼び起こす。 ImageViewer.OnSaveを呼び出してください。 HandleWheelResetDirtyAsyncImageViewer.Source にし、汚れをクリアし、リセットを使います ツールバーボタンやアップデート ImageViewer.Source。RevertCropImageViewer.Source。回転やフリップは使用者の位置に留まります。 もし前回のセーブ以降に変わったなら、 ImageViewer.IsDirty 真実であり続けてください。ツールバーのリセットボタン(または更新)を使ってください ImageViewer.Source)完全な改宗。