feat:furion rbac搭建
This commit is contained in:
@@ -0,0 +1,65 @@
|
||||
using Furion.DependencyInjection;
|
||||
using SixLabors.ImageSharp.Formats.Jpeg;
|
||||
using SixLabors.ImageSharp.Formats.Png;
|
||||
using SixLabors.ImageSharp.Processing;
|
||||
|
||||
namespace Yi.Framework.Module.ImageSharp;
|
||||
public class ImageSharpManager:ISingleton
|
||||
{
|
||||
public void ImageCompress(string fileName, Stream stream, string savePath)
|
||||
{
|
||||
var extensionName = Path.GetExtension(fileName).ToLower();
|
||||
if (extensionName == ".png")
|
||||
{
|
||||
PngImageCompress(stream, savePath);
|
||||
}
|
||||
else if (extensionName == ".jpg" || extensionName == ".jpeg")
|
||||
{
|
||||
JpgImageCompress(stream, savePath);
|
||||
}
|
||||
else
|
||||
{
|
||||
using (var fileStream = new FileStream(savePath, FileMode.Create, FileAccess.Write))
|
||||
{
|
||||
stream.CopyTo(fileStream);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void PngImageCompress(Stream stream, string savePath)
|
||||
{
|
||||
using (var image = Image.Load(stream))
|
||||
{
|
||||
var encoder = new PngEncoder()
|
||||
{
|
||||
CompressionLevel = PngCompressionLevel.Level6,
|
||||
|
||||
};
|
||||
if (image.Width > 300)
|
||||
{
|
||||
image.Mutate(a => a.Resize(image.Width / 2, image.Height / 2));
|
||||
}
|
||||
|
||||
image.Save(savePath, encoder);
|
||||
}
|
||||
}
|
||||
public void JpgImageCompress(Stream stream, string savePath)
|
||||
{
|
||||
using (var image = Image.Load(stream))
|
||||
{
|
||||
var encoder = new JpegEncoder()
|
||||
{
|
||||
Quality = 30
|
||||
};
|
||||
if (image.Width > 300)
|
||||
{
|
||||
image.Mutate(a => a.Resize(image.Width / 2, image.Height / 2));
|
||||
}
|
||||
|
||||
|
||||
image.Save(savePath, encoder);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user