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

      

  • 相关阅读:
    Cookie同Session的关系 (2)
    Java Web应用开发概述
    Oracle客户端工具连接数据库服务器问题汇总
    java中使用JSCH包,SFTP及SSH2文件操作及远程命令执行
    javascript学习实录 之九(选择样式,改变文字效果) 刘小小尘
    用python给MP3加封面图片,修改作者,专辑等信息
    超像素分割技术发展情况梳理(Superpixel Segmentation)计算机视觉专题3
    android 应用程序的内存分析
    查询成绩
    sharepoint 2010 获取列表术语数据源方法
  • 原文地址:https://www.cnblogs.com/careychao/p/12036123.html
Copyright © 2020-2023  润新知