
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>