95 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			C#
		
	
	
			
		
		
	
	
			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);
 | |
| 
 | |
|         }
 | |
| 
 | |
|     }
 | |
| }
 |