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

      

  • 相关阅读:
    JSP简单练习-数组应用实例
    Android中的动画具体解释系列【4】——Activity之间切换动画
    php学习之道:WSDL具体解释(三)
    破解电信光猫(个人真实经验)
    POj 1879 Tempus et mobilius Time and motion (模拟+群)
    使用mysql-mmm实现MySQL高可用集群
    德克萨斯扑克_百度百科
    姜饼屋_百度百科
    阿根廷探戈----中英文对照
    波尔卡舞_百度百科
  • 原文地址:https://www.cnblogs.com/careychao/p/12036123.html
Copyright © 2011-2022 走看看