using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.IO; //*Directory
using Microsoft.AspNetCore.Http;
//*IFormFile
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Hosting; //*get RootPath
using System.Drawing; //CoreCompat
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
namespace IWois_Core.Controllers
{
public class ImageController
: Controller
{
private readonly
IHostingEnvironment _appEnvironment;
public ImageController(
IHostingEnvironment appEnvironment)
{
//----< Init:
Controller >----
_appEnvironment =
appEnvironment;
//----</ Init:
Controller >----
}
[HttpGet] //1.Load
public IActionResult Upload_Image()
{
//--< Upload Form >--
string srcImage_Path = @"C:\_Daten\Desktop\VS_Projects\Web\xx\wwwroot\User_Files\Images\image_Original.jpg";
string resizeImage_Path = $@"C:\_Daten\Desktop\VS_Projects\Web\xx\wwwroot\User_Files\Images\image_Resized_500.jpg";
int new_Size = 500;
Image_resize(srcImage_Path
, resizeImage_Path,new_Size);
//return View();
//--</ Upload Form >--
}
private void Image_resize(string input_Image_Path, string output_Image_Path,int new_size)
{
//---------------< Image_resize()
>---------------
//*Resizes an Image in Asp.Net MVC Core
2
//*Using Nuget CoreCompat.System.Drawing
//using System.IO
//using System.Drawing; //CoreCompat
//using System.Drawing.Drawing2D; //CoreCompat
//using System.Drawing.Imaging; //CoreCompat
const long quality = 50L;
using (var image = new
Bitmap(System.Drawing.Image.FromFile(input_Image_Path)))
{
//< create Empty Drawarea >
var resized_Bitmap = new Bitmap(new_size, new_size);
//</ create Empty Drawarea >
using (var graphics =
Graphics.FromImage(resized_Bitmap))
{
//< setup >
graphics.CompositingQuality = CompositingQuality.HighSpeed;
graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;
graphics.CompositingMode
= CompositingMode.SourceCopy;
//</ setup >
//< draw into placeholder >
graphics.DrawImage(image,
0, 0, new_size, new_size);
//</ draw into placeholder >
//--< Output as .Jpg >--
using (var output =
System.IO.File.Open(output_Image_Path, FileMode.Create))
{
//< setup jpg >
var qualityParamId = Encoder.Quality;
var encoderParameters = new EncoderParameters(1);
encoderParameters.Param[0] = new EncoderParameter(qualityParamId, quality);
//</ setup jpg >
//< save Bitmap as Jpg >
var codec =
ImageCodecInfo.GetImageDecoders().FirstOrDefault(c => c.FormatID ==
ImageFormat.Jpeg.Guid);
resized_Bitmap.Save(output, codec, encoderParameters);
//</ save Bitmap as Jpg >
}
//--</ Output as .Jpg >--
}
}
//---------------</
Image_resize() >---------------
}
}
}
|