
cropper.blazorは、 cropper.jsバージョン1.6.2を包むコンポーネントです。



Blazor WebAssembly / Serverの最も強力な画像トリミングツール、MAUI、MVC、およびその他のフレームワークとのハイブリッド。
cropper.blazorは、Blazor Webアプリケーションでインタラクティブな画像トリミングと操作機能を構築するための不可欠なコンポーネントです。この用途の広いBlazor Libraryは、開発者が直感的な画像トリミング機能をBlazorプロジェクトに直接統合できるようにし、ユーザーにシームレスで応答性の高い画像編集体験を提供します。
| cropper.blazor | 。ネット | サポート |
|---|---|---|
| - | .NET 3.1 | サポートされていません |
| - | .NET 5 | サポートされていません |
| 1.1.x | .NET 6 | ✔✔️ |
| 1.2.x | .NET 6&.NET 7 | ✔✔️ |
| 1.3.x | .NET 6&.NET 7&.NET 8 | ✔✔️ |
これらのWebプラットフォーム用の.NET 8.0、.NET 7.0、.NET 6.0バージョンをサポートしています。
注:マウイプロジェクトの依存関係に問題がある場合:
dotnet workload update +プロジェクトの再構築。それが役に立たない場合は、Overrideパッケージについて以下のステップを試してください<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" VersionOverride="7.0.1" /> Cropper.Blazorは、Blazorアプリケーション内の画像トリミングと編集の実装を合理化し、ユーザーのエンゲージメントを強化し、動的な画像操作を可能にします。 Blazorベースの画像エディタ、プロフィール写真のアップローダー、または画像のトリミングを必要とするその他のアプリケーションを開発しているかどうかにかかわらず、cropper.blazorは、開発プロセスを簡素化し、アプリケーションの機能を強化する貴重なパッケージです。
dotnet add package Cropper.Blazor
カスタム要素のインポート:
@ using Cropper . Blazor . Components index.html (クライアントサイド - Blazor WebAssembly、Blazor Maui)または_Host.cshtml (サーバー側 - Blazorサーバー、MVC、Blazor Server付きMVC)に以下を追加しますhead
< link href = " _content/Cropper.Blazor/cropper.min.css " rel = " stylesheet " /> bodyにindex.htmlまたは_Host.cshtmlに次のものを追加します
< script src = " _content/Cropper.Blazor/cropper.min.js " ></ script > Program.csの関連セクションに以下を追加します
using Cropper . Blazor . Extensions ; builder . Services . AddCropper ( ) ;さらに、何らかの理由でサーバールートフォルダーの外側にある場合は、次のように、cropperjsinterop.min.jsモジュールへのパスを変更できます。
builder . Services . AddCropper ( new CropperJsInteropOptions ( )
{
DefaultInternalPathToCropperModule = "<YourPath>/_content/Cropper.Blazor/cropperJsInterop.min.js"
} ) builder . Services . AddCropper ( new CropperJsInteropOptions ( )
{
IsActiveGlobalPath = true ,
GlobalPathToCropperModule = "<StartUrlWithPath>/_content/Cropper.Blazor/cropperJsInterop.min.js"
} )また、サーバー側(Blazor ServerまたはBlazor Serverを使用したMVC)の場合は、構成SignalRを追加する必要があります。単一の着信ハブメッセージ(デフォルトは32kb)の最大レシーブ出来事を増やし、Pathに信号をマッピングします。ただし、画像が大きすぎる場合は、最大値の変数を希望の値に増やす必要があります。例えば:
builder . Services . AddServerSideBlazor ( )
. AddHubOptions ( options =>
{
options . MaximumReceiveMessageSize = 32 * 1024 * 100 ;
} ) ; app . MapBlazorHub ( ) ;そして、それをRazorファイルで使用します(たとえば):
< CropperComponent
Class = " cropper-container "
ErrorLoadImageClass = " cropper-error-load "
@ref = " CropperComponent "
OnCropStartEvent = " OnCropStartEvent "
OnCropEndEvent = " OnCropEndEvent "
OnCropEvent = " OnCropEvent "
OnZoomEvent = " OnZoomEvent "
OnCropMoveEvent = " OnCropMoveEvent "
OnReadyEvent = " OnCropReadyEvent "
OnLoadImageEvent = " OnLoadImageEvent "
Src = " @Src "
InputAttributes = " @InputAttributes "
ErrorLoadImageSrc = " @_errorLoadImageSrc "
IsErrorLoadImage = " @IsErrorLoadImage "
OnErrorLoadImageEvent = " OnErrorLoadImageEvent "
Options = " Options "
IsAvailableInitCropper = " IsAvailableInitCropper " >
</ CropperComponent >次に、 *.razor.csファイルで使用します
JavaScriptのOnzoomコールバックをオーバーライドするなど、6つのイベントハンドラー(Ondeady、Oncropmove、Oncropmove、Oncropend、Oncrop、Onzoom)を置き換えることができる実行スクリプトで、Cropper JavaScriptモジュールをオーバーライドできます。
window . overrideOnZoomCropperEvent = ( minZoomRatio , maxZoomRatio ) => {
window . cropper . onZoom = function ( imageObject , event , correlationId ) {
const jSEventData = this . getJSEventData ( event , correlationId ) ;
const isApplyPreventZoomMinRatio = ( minZoomRatio != null ) && ( minZoomRatio > event . detail . ratio ) ;
const isApplyPreventZoomMaxRatio = ( maxZoomRatio != null ) && ( event . detail . ratio > maxZoomRatio ) ;
if ( isApplyPreventZoomMinRatio || isApplyPreventZoomMaxRatio ) {
event . preventDefault ( ) ;
}
else {
imageObject . invokeMethodAsync ( 'CropperIsZoomed' , jSEventData ) ;
}
} ;
} ;準備ができている署名、Oncropstart、Oncropmove、Oncropend、Oncrop、Onzoomイベントハンドラーの分析:
Objectベースクロッパーコンポーネントへの参照。
CustomEventクロッパーイベントを表します。
StringCropper.Blazor相関IDは、コンテキストを識別するために最初のインタラクション(着信要求)に追加され、トランザクションフローに関与するすべてのコンポーネントに渡される一意の識別子です。
これらのルールをBlazorで間違いなく伝える必要があります:
await JSRuntime ! . InvokeVoidAsync ( "window.overrideCropperJsInteropModule" , MinZoomRatio , MaxZoomRatio ) ; git checkout -b feature/<my-new-feature>git commit -m 'Add some feature'git push origin feature/<my-new-feature>