zoukankan      html  css  js  c++  java
  • .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");
    }

      

  • 相关阅读:
    C#中递归算法的总结
    C# 创建错误日志
    获取指定路径下所有PDF文件的总页数
    C# 将文件转为字符串和将字符串转为文件的方法
    如何获得应用程序的物理路径
    C#中获得文件夹下所有文件的两种方法
    C#中加密与解密
    MacOS系统使用Homebrew官方地址报错
    privoxy代理服务器配置
    Nginx 反向代理 502 permission denied 解决
  • 原文地址:https://www.cnblogs.com/careychao/p/12036123.html
Copyright © 2011-2022 走看看