
Cropper.Blazor是一個包裹Cropper.js版本1.6.2的組件



Glazor WebAssembly / Server,與MAUI,MVC和其他框架的混合動力的最強大的圖像裁剪工具。
Cropper.Blazor是在大型Web應用程序中構建交互式圖像裁剪和操縱功能的重要組成部分。這個多功能的大火庫使開發人員能夠將直覺的圖像裁剪功能直接集成到其大型項目中,從而為用戶提供無縫且響應迅速的圖像編輯體驗。
| 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 | ✔️ |
支持的.NET 8.0,.NET 7.0,.NET 6.0版本的這些Web平台:
注意:如果您對MAUI項目依賴性有問題:
dotnet workload update +重建了項目。如果那無濟於事,請嘗試以下有關覆蓋軟件包的步驟<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" VersionOverride="7.0.1" /> Cropper.Blazor簡化了大型應用程序中圖像裁剪和編輯的實現,從而增強用戶參與度並實現動態圖像操縱。無論您是開發基於外彙的圖像編輯器,個人資料圖片上傳器,還是任何需要圖像裁剪的其他應用程序,Cropper.blazor都是一個有價值的軟件包,可簡化開發過程並豐富您的應用程序的功能。
dotnet add package Cropper.Blazor
導入自定義元素:
@ using Cropper . Blazor . Components將以下內容添加head index.html (客戶端 - jlazor webAssembly,julazor maui)或_Host.cshtml (服務器端 - Blazor Server,MVC,帶有Blazor Server)
< 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,增加單個傳入HUB消息的最大收益(默認為32KB),然後將MAP Signalr映射到您的路徑。但是,如果您的圖像太大,則最大值的變量應增加到所需的值。例如:
builder . Services . AddServerSideBlazor ( )
. AddHubOptions ( options =>
{
options . MaximumReceiveMessageSize = 32 * 1024 * 100 ;
} ) ; app . MapBlazorHub ( ) ;然後在剃須刀文件中使用它:
< 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文件中使用它
您可以使用執行腳本覆蓋Cropper JavaScript模塊,該腳本可以替換6個事件處理程序(onready,onready,oncropstart,oncropmove,oncropend,oncropend,ongrop,onzoom),例如在javaScript中覆蓋onzoom回調:
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代表Cropper事件。
StringCropper.Blazor相關ID是一個唯一的標識符,將其添加到第一個交互(傳入請求)以識別上下文,並將其傳遞給交易流中涉及的所有組件。
絕對需要在大火中說出這些規則:
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>