irc-netcore-api/IRaCIS.Core.API/Controllers/CommonController.cs

95 lines
3.0 KiB
C#

using AutoMapper;
using IRaCIS.Core.Application.Helper;
using IRaCIS.Core.Domain.Share;
using IRaCIS.Core.Infrastructure.Extention;
using MediatR;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using System.IO;
using System.Threading.Tasks;
namespace IRaCIS.Core.API.Controllers
{
[ApiExplorerSettings(GroupName = "Trial")]
[ApiController]
public class CommonController : ControllerBase
{
public IMapper _mapper { get; set; }
public IUserInfo _userInfo { get; set; }
private readonly IWebHostEnvironment _hostEnvironment;
public CommonController(IMapper mapper, IUserInfo userInfo, IMediator mediator, IWebHostEnvironment hostEnvironment)
{
_hostEnvironment = hostEnvironment;
_mapper = mapper;
_userInfo = userInfo;
}
[AllowAnonymous]
[HttpGet("Common/LocalFilePreview")]
public async Task<FileContentResult> LocalFilePreview(string relativePath)
{
var rootPath = Directory.GetParent(_hostEnvironment.ContentRootPath.TrimEnd('\\')).IfNullThrowException().FullName;
var _fileStorePath = Path.Combine(rootPath, relativePath.Replace('/', '\\').Trim('\\'));
var storePreviewPath = _fileStorePath + ".preview.jpeg";
//if (!System.IO.File.Exists(storePreviewPath))
//{
ImageResizeHelper.ResizeSave(_fileStorePath, storePreviewPath);
//}
return new FileContentResult(await System.IO.File.ReadAllBytesAsync(storePreviewPath), "image/jpeg");
//_logger.LogError(rootPath);
//_logger.LogError(_fileStorePath);
//if (!File.Exists(storePreviewPath))
//{
//Bitmap sourceImage = new Bitmap(File.OpenRead(_fileStorePath));
//System.Drawing.Image destinationImage = new Bitmap(500, 500);
//Graphics g = Graphics.FromImage(destinationImage);
//g.DrawImage(
// sourceImage,
// new Rectangle(0, 0, 500, 500),
// new Rectangle(0, 0, sourceImage.Width, sourceImage.Height),
// GraphicsUnit.Pixel
//);
//destinationImage.Save(storePreviewPath);
//var image = SKBitmap.Decode(_fileStorePath);
////设置图片新的size
//var newImg = image.Resize(new SKSizeI(50, 50), SKFilterQuality.Medium);
//using var fs = new FileStream(storePreviewPath, FileMode.Create);
//newImg.Encode(fs, SKEncodedImageFormat.Png, 100);
//fs.Flush();
//var image = NetVips.Image.NewFromFile(_fileStorePath);
//var newImg = image.Resize(0.5);
//newImg.WriteToFile(storePreviewPath);
//var image = NetVips.Image.NewFromFile(_fileStorePath);
//var newImg = image.ThumbnailImage(500);
//newImg.WriteToFile(_fileStorePath);
}
}
}