mirror of https://github.com/abpframework/abp.git
11 changed files with 0 additions and 261 deletions
@ -1,3 +0,0 @@ |
|||
<Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd"> |
|||
<ConfigureAwait ContinueOnCapturedContext="false" /> |
|||
</Weavers> |
|||
@ -1,30 +0,0 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> |
|||
<!-- This file was generated by Fody. Manual changes to this file will be lost when your project is rebuilt. --> |
|||
<xs:element name="Weavers"> |
|||
<xs:complexType> |
|||
<xs:all> |
|||
<xs:element name="ConfigureAwait" minOccurs="0" maxOccurs="1"> |
|||
<xs:complexType> |
|||
<xs:attribute name="ContinueOnCapturedContext" type="xs:boolean" /> |
|||
</xs:complexType> |
|||
</xs:element> |
|||
</xs:all> |
|||
<xs:attribute name="VerifyAssembly" type="xs:boolean"> |
|||
<xs:annotation> |
|||
<xs:documentation>'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed.</xs:documentation> |
|||
</xs:annotation> |
|||
</xs:attribute> |
|||
<xs:attribute name="VerifyIgnoreCodes" type="xs:string"> |
|||
<xs:annotation> |
|||
<xs:documentation>A comma-separated list of error codes that can be safely ignored in assembly verification.</xs:documentation> |
|||
</xs:annotation> |
|||
</xs:attribute> |
|||
<xs:attribute name="GenerateXsd" type="xs:boolean"> |
|||
<xs:annotation> |
|||
<xs:documentation>'false' to turn off automatic generation of the XML Schema file.</xs:documentation> |
|||
</xs:annotation> |
|||
</xs:attribute> |
|||
</xs:complexType> |
|||
</xs:element> |
|||
</xs:schema> |
|||
@ -1,19 +0,0 @@ |
|||
<Project Sdk="Microsoft.NET.Sdk"> |
|||
|
|||
<Import Project="..\..\..\configureawait.props" /> |
|||
<Import Project="..\..\..\common.props" /> |
|||
|
|||
<PropertyGroup> |
|||
<TargetFrameworks>netstandard2.0;netstandard2.1;net7.0</TargetFrameworks> |
|||
<PackageId>Volo.Abp.Image</PackageId> |
|||
<AssetTargetFallback>$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;</AssetTargetFallback> |
|||
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute> |
|||
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute> |
|||
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute> |
|||
<RootNamespace /> |
|||
</PropertyGroup> |
|||
|
|||
<ItemGroup> |
|||
<ProjectReference Include="..\Volo.Abp.Image.Abstractions\Volo.Abp.Image.Abstractions.csproj" /> |
|||
</ItemGroup> |
|||
</Project> |
|||
@ -1,3 +0,0 @@ |
|||
{ |
|||
"role": "lib.framework" |
|||
} |
|||
@ -1,8 +0,0 @@ |
|||
using Volo.Abp.Modularity; |
|||
|
|||
namespace Volo.Abp.Image; |
|||
|
|||
[DependsOn(typeof(AbpImageAbstractionsModule))] |
|||
public class AbpImageModule : AbpModule |
|||
{ |
|||
} |
|||
@ -1,50 +0,0 @@ |
|||
using System; |
|||
using System.Threading; |
|||
using System.Threading.Tasks; |
|||
using Microsoft.Extensions.DependencyInjection; |
|||
using Volo.Abp.Content; |
|||
|
|||
namespace Volo.Abp.Image; |
|||
|
|||
public static class IRemoteStreamContentExtensions |
|||
{ |
|||
public async static Task<IRemoteStreamContent> CompressImageAsync(this IRemoteStreamContent remoteStreamContent, IImageFormat imageFormat, IImageCompressor imageCompressor, CancellationToken cancellationToken = default) |
|||
{ |
|||
if (!imageCompressor.CanCompress(imageFormat)) |
|||
{ |
|||
return remoteStreamContent; |
|||
} |
|||
|
|||
var compressedImageStream = await remoteStreamContent.GetStream().CompressImageAsync(imageFormat, imageCompressor, cancellationToken); |
|||
|
|||
return new RemoteStreamContent(compressedImageStream, remoteStreamContent.FileName, remoteStreamContent.ContentType); |
|||
} |
|||
|
|||
public async static Task<IRemoteStreamContent> CompressImageAsync(this IRemoteStreamContent remoteStreamContent, IServiceProvider serviceProvider, CancellationToken cancellationToken = default) |
|||
{ |
|||
var imageFormatDetector = serviceProvider.GetRequiredService<IImageFormatDetector>(); |
|||
var imageCompressorSelector = serviceProvider.GetRequiredService<IImageCompressorSelector>(); |
|||
var format = imageFormatDetector.FindFormat(remoteStreamContent.GetStream()); |
|||
return await remoteStreamContent.CompressImageAsync(format, imageCompressorSelector.FindCompressor(format), cancellationToken); |
|||
} |
|||
|
|||
public async static Task<IRemoteStreamContent> ResizeImageAsync(this IRemoteStreamContent remoteStreamContent, IImageResizeParameter imageResizeParameter, IImageFormat imageFormat, IImageResizer imageResizer, CancellationToken cancellationToken = default) |
|||
{ |
|||
if (!imageResizer.CanResize(imageFormat)) |
|||
{ |
|||
return remoteStreamContent; |
|||
} |
|||
|
|||
var resizedImageStream = await remoteStreamContent.GetStream().ResizeImageAsync(imageResizeParameter, imageFormat, imageResizer, cancellationToken); |
|||
|
|||
return new RemoteStreamContent(resizedImageStream, remoteStreamContent.FileName, remoteStreamContent.ContentType); |
|||
} |
|||
|
|||
public async static Task<IRemoteStreamContent> ResizeImageAsync(this IRemoteStreamContent remoteStreamContent, IImageResizeParameter imageResizeParameter, IServiceProvider serviceProvider, CancellationToken cancellationToken = default) |
|||
{ |
|||
var imageFormatDetector = serviceProvider.GetRequiredService<IImageFormatDetector>(); |
|||
var imageResizerSelector = serviceProvider.GetRequiredService<IImageResizerSelector>(); |
|||
var format = imageFormatDetector.FindFormat(remoteStreamContent.GetStream()); |
|||
return await remoteStreamContent.ResizeImageAsync(imageResizeParameter, format, imageResizerSelector.FindResizer(format), cancellationToken); |
|||
} |
|||
} |
|||
@ -1,20 +0,0 @@ |
|||
using System.Collections.Generic; |
|||
using System.Linq; |
|||
using Volo.Abp.DependencyInjection; |
|||
|
|||
namespace Volo.Abp.Image; |
|||
|
|||
public class ImageCompressorSelector : IImageCompressorSelector, ITransientDependency |
|||
{ |
|||
private readonly IEnumerable<IImageCompressor> _imageCompressors; |
|||
|
|||
public ImageCompressorSelector(IEnumerable<IImageCompressor> imageCompressors) |
|||
{ |
|||
_imageCompressors = imageCompressors; |
|||
} |
|||
|
|||
public IImageCompressor FindCompressor(IImageFormat imageFormat) |
|||
{ |
|||
return _imageCompressors.FirstOrDefault(x => x.CanCompress(imageFormat)); |
|||
} |
|||
} |
|||
@ -1,19 +0,0 @@ |
|||
namespace Volo.Abp.Image; |
|||
|
|||
public class ImageResizeArgs : IImageResizeParameter |
|||
{ |
|||
public int? Width { get; set; } |
|||
|
|||
public int? Height { get; set; } |
|||
|
|||
public ImageResizeMode? Mode { get; set; } //TODO: Set default here
|
|||
|
|||
public ImageResizeArgs(int? width = null, int? height = null, ImageResizeMode? mode = null) |
|||
{ |
|||
Mode = mode; |
|||
Width = width; |
|||
Height = height; |
|||
|
|||
//TODO: Throw exception if width/height is not null and negative
|
|||
} |
|||
} |
|||
@ -1,20 +0,0 @@ |
|||
using System.Collections.Generic; |
|||
using System.Linq; |
|||
using Volo.Abp.DependencyInjection; |
|||
|
|||
namespace Volo.Abp.Image; |
|||
|
|||
public class ImageResizerSelector : IImageResizerSelector, ITransientDependency |
|||
{ |
|||
private readonly IEnumerable<IImageResizer> _imageResizers; |
|||
|
|||
public ImageResizerSelector(IEnumerable<IImageResizer> imageResizers) |
|||
{ |
|||
_imageResizers = imageResizers; |
|||
} |
|||
|
|||
public IImageResizer FindResizer(IImageFormat imageFormat) |
|||
{ |
|||
return _imageResizers.FirstOrDefault(x => x.CanResize(imageFormat)); |
|||
} |
|||
} |
|||
@ -1,82 +0,0 @@ |
|||
using System; |
|||
using System.IO; |
|||
using System.Threading; |
|||
using System.Threading.Tasks; |
|||
using Microsoft.Extensions.DependencyInjection; |
|||
|
|||
namespace Volo.Abp.Image; |
|||
|
|||
public static class StreamExtensions //TODO: Remove
|
|||
{ |
|||
public static Stream CompressImage(this Stream stream, IImageFormat imageFormat, IImageCompressor imageCompressor) |
|||
{ |
|||
if (!imageCompressor.CanCompress(imageFormat)) |
|||
{ |
|||
return stream; |
|||
} |
|||
|
|||
return imageCompressor.Compress(stream); |
|||
} |
|||
|
|||
public static Stream CompressImage(this Stream stream, IServiceProvider serviceProvider) |
|||
{ |
|||
var imageFormatDetector = serviceProvider.GetRequiredService<IImageFormatDetector>(); |
|||
var imageCompressorSelector = serviceProvider.GetRequiredService<IImageCompressorSelector>(); |
|||
var format = imageFormatDetector.FindFormat(stream); |
|||
return stream.CompressImage(format, imageCompressorSelector.FindCompressor(format)); |
|||
} |
|||
|
|||
public static Task<Stream> CompressImageAsync(this Stream stream, IImageFormat imageFormat, IImageCompressor imageCompressor, CancellationToken cancellationToken = default) |
|||
{ |
|||
if (!imageCompressor.CanCompress(imageFormat)) |
|||
{ |
|||
return Task.FromResult(stream); |
|||
} |
|||
|
|||
return imageCompressor.CompressAsync(stream, cancellationToken); |
|||
} |
|||
|
|||
public static Task<Stream> CompressImageAsync(this Stream stream, IServiceProvider serviceProvider, CancellationToken cancellationToken = default) |
|||
{ |
|||
var imageFormatDetector = serviceProvider.GetRequiredService<IImageFormatDetector>(); |
|||
var imageCompressorSelector = serviceProvider.GetRequiredService<IImageCompressorSelector>(); |
|||
var format = imageFormatDetector.FindFormat(stream); |
|||
return stream.CompressImageAsync(format, imageCompressorSelector.FindCompressor(format), cancellationToken); |
|||
} |
|||
|
|||
public static Stream ResizeImage(this Stream stream, IImageResizeParameter imageResizeParameter, IImageFormat imageFormat, IImageResizer imageResizer) |
|||
{ |
|||
if (!imageResizer.CanResize(imageFormat)) |
|||
{ |
|||
return stream; |
|||
} |
|||
|
|||
return imageResizer.Resize(stream, imageResizeParameter); |
|||
} |
|||
|
|||
public static Stream ResizeImage(this Stream stream, IImageResizeParameter imageResizeParameter, IServiceProvider serviceProvider) |
|||
{ |
|||
var imageFormatDetector = serviceProvider.GetRequiredService<IImageFormatDetector>(); |
|||
var imageResizerSelector = serviceProvider.GetRequiredService<IImageResizerSelector>(); |
|||
var format = imageFormatDetector.FindFormat(stream); |
|||
return stream.ResizeImage(imageResizeParameter, format, imageResizerSelector.FindResizer(format)); |
|||
} |
|||
|
|||
public static Task<Stream> ResizeImageAsync(this Stream stream, IImageResizeParameter imageResizeParameter, IImageFormat imageFormat, IImageResizer imageResizer, CancellationToken cancellationToken = default) |
|||
{ |
|||
if (!imageResizer.CanResize(imageFormat)) |
|||
{ |
|||
return Task.FromResult(stream); |
|||
} |
|||
|
|||
return imageResizer.ResizeAsync(stream, imageResizeParameter, cancellationToken); |
|||
} |
|||
|
|||
public static Task<Stream> ResizeImageAsync(this Stream stream, IImageResizeParameter imageResizeParameter, IServiceProvider serviceProvider, CancellationToken cancellationToken = default) |
|||
{ |
|||
var imageFormatDetector = serviceProvider.GetRequiredService<IImageFormatDetector>(); |
|||
var imageResizerSelector = serviceProvider.GetRequiredService<IImageResizerSelector>(); |
|||
var format = imageFormatDetector.FindFormat(stream); |
|||
return stream.ResizeImageAsync(imageResizeParameter, format, imageResizerSelector.FindResizer(format), cancellationToken); |
|||
} |
|||
} |
|||
Loading…
Reference in new issue