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

      

  • 相关阅读:
    Java中HashMap底层实现原理(JDK1.8)源码分析
    java io系列01之 "目录"
    数据结构与算法系列 目录
    Java 集合系列目录(Category)
    ls参数
    在PATH路径中添加新的路径
    目录相关的操作
    chmod
    属性类型
    ls -al
  • 原文地址:https://www.cnblogs.com/careychao/p/12036123.html
Copyright © 2011-2022 走看看