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);
 | 
						|
 | 
						|
        }
 | 
						|
 | 
						|
    }
 | 
						|
}
 |