.netcore tif文件转jpg,并通过webapi返回

网上能搜到很多关于c# tif转jpg的代码。最简单的就是下面这段获得转换后的图片图片对象。在netcore 中使用这段代码时由于netcore框架已经不自带System.Drawing命名空间了所有没法直接使用下面的代码,

但好在netcore2.0版本新增了一个System.Drawing.Common的独立程序包,只需要通过Nuget安装System.Drawing.Common包,就能同.net framework框架一样使用如下代码了。

        System.Drawing.Image image = System.Drawing.Image.FromFile(tifPath);
            //uploadTif   中tif图形文件   
            //取得图片大小
            //System.Drawing.Size size = new System.Drawing.Size(1000, 600);
            //新建一个bmp图片   
            System.Drawing.Image bitmap = new System.Drawing.Bitmap(image.Width, image.Height);
            //新建一个画板   
            System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bitmap);
            //设置高质量插值法   
            g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;
            //设置高质量,低速度呈现平滑程度   
            g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
            //清空一下画布   
            g.Clear(System.Drawing.Color.White);
            //在指定位置画图   
            g.DrawImage(image, new System.Drawing.Rectangle(0, 0, bitmap.Width, bitmap.Height), new System.Drawing.Rectangle(0, 0, image.Width, image.Height), System.Drawing.GraphicsUnit.Pixel);
        

  下面是通过webapi将转换后的jpg 返回给http请求的代码

[HttpGet]
[AllowAnonymous]
public async Task<ActionResult> TifToJpg(string tifPath)
{
  System.Drawing.Image image = System.Drawing.Image.FromFile(tifPath);
  //uploadTif   中tif图形文件   
  //取得图片大小
  //System.Drawing.Size size = new System.Drawing.Size(1000, 600);
  //新建一个bmp图片   
  System.Drawing.Image bitmap = new System.Drawing.Bitmap(image.Width, image.Height);
  //新建一个画板   
  System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bitmap);
  //设置高质量插值法   
  g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;
  //设置高质量,低速度呈现平滑程度   
  g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
  //清空一下画布   
  g.Clear(System.Drawing.Color.White);
  //在指定位置画图   
  g.DrawImage(image, new System.Drawing.Rectangle(0, 0, bitmap.Width, bitmap.Height), new System.Drawing.Rectangle(0, 0, image.Width, image.Height), System.Drawing.GraphicsUnit.Pixel);      

   //保存高清晰度的缩略图到内存流
   System.IO.MemoryStream memoryStream = new System.IO.MemoryStream();
   bitmap.Save(memoryStream, System.Drawing.Imaging.ImageFormat.Jpeg); //uploadTif 中tif文件 

   //将流以文件方式返回
  return File(memoryStream.ToArray(), "image/jpeg", "demo.jpg");
}

  

posted @ 2019-12-13 16:56  carey超  阅读(771)  评论(0编辑  收藏  举报
123