C#实现为一张大尺寸图片创建缩略图的方法

 更新时间:2015年06月16日 12:12:22   作者:红薯  
这篇文章主要介绍了C#实现为一张大尺寸图片创建缩略图的方法,涉及C#创建缩略图的相关图片操作技巧,需要的朋友可以参考下

本文实例讲述了C#实现为一张大尺寸图片创建缩略图的方法。分享给大家供大家参考。具体实现方法如下:

public static Bitmap CreateThumbnail(string lcFilename, int lnWidth, int lnHeight)
{
  System.Drawing.Bitmap bmpOut = null;
  try
  {
    Bitmap loBMP = new Bitmap(lcFilename);
    ImageFormat loFormat = loBMP.RawFormat;
    decimal lnRatio;
    int lnNewWidth = 0;
    int lnNewHeight = 0;
    //*** If the image is smaller than a thumbnail just return it
    if (loBMP.Width < lnWidth && loBMP.Height < lnHeight)
      return loBMP;
    if (loBMP.Width > loBMP.Height)
    {
      lnRatio = (decimal)lnWidth / loBMP.Width;
      lnNewWidth = lnWidth;
      decimal lnTemp = loBMP.Height * lnRatio;
      lnNewHeight = (int)lnTemp;
    }
    else
    {
      lnRatio = (decimal)lnHeight / loBMP.Height;
      lnNewHeight = lnHeight;
      decimal lnTemp = loBMP.Width * lnRatio;
      lnNewWidth = (int)lnTemp;
    }
    bmpOut = new Bitmap(lnNewWidth, lnNewHeight);
    Graphics g = Graphics.FromImage(bmpOut);
    g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
    g.FillRectangle(Brushes.White, 0, 0, lnNewWidth, lnNewHeight);
    g.DrawImage(loBMP, 0, 0, lnNewWidth, lnNewHeight);
    loBMP.Dispose();
  }
  catch
  {
    return null;
  }
  return bmpOut;
}

希望本文所述对大家的C#程序设计有所帮助。

相关文章

  • Unity3D实现摄像机镜头移动并限制角度

    Unity3D实现摄像机镜头移动并限制角度

    这篇文章主要为大家详细介绍了Unity3D实现摄像机镜头移动并限制角度,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-05-05
  • Unity实现见缝插针小游戏

    Unity实现见缝插针小游戏

    这篇文章主要为大家详细介绍了Unity实现见缝插针小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-04-04
  • C# WPF开源UI控件库MaterialDesign介绍

    C# WPF开源UI控件库MaterialDesign介绍

    这篇文章介绍了C# WPF开源UI控件库MaterialDesign,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-01-01
  • ajaxFileUpload插件,C#返回Json数据报错问题的解决方案

    ajaxFileUpload插件,C#返回Json数据报错问题的解决方案

    这篇文章主要介绍了ajaxFileUpload插件,C#返回Json数据报错的解决方案,需要的朋友可以参考下
    2017-12-12
  • C#运算符大全_各种运算符号的概述及作用

    C#运算符大全_各种运算符号的概述及作用

    以下是对C#中各种运算符号的说明及作用进行了详细的总结介绍,需要的朋友可以过来参考下,希望对大家有所帮助
    2013-10-10
  • C#使用迭代法实现Fibnaci数列

    C#使用迭代法实现Fibnaci数列

    这篇文章主要介绍了C#使用迭代法实现Fibnaci数列的方法,较为详细的分析了Fibnaci数列的原理与迭代法实现技巧,需要的朋友可以参考下
    2015-05-05
  • C#的path.GetFullPath 获取上级目录实现方法

    C#的path.GetFullPath 获取上级目录实现方法

    这篇文章主要介绍了C#的path.GetFullPath 获取上级目录实现方法,包含了具体的C#实现方法以及ASP.net与ASP等的方法对比,非常具有实用价值,需要的朋友可以参考下
    2014-10-10
  • C#导航器Xpath与XPathNavigator类

    C#导航器Xpath与XPathNavigator类

    这篇文章介绍了C#导航器Xpath与XPathNavigator类,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • C#中is和as用法实例分析

    C#中is和as用法实例分析

    这篇文章主要介绍了C#中is和as用法实例分析,需要的朋友可以参考下
    2014-08-08
  • 关于C#中yield关键字的深入解析

    关于C#中yield关键字的深入解析

    这篇文章主要给大家介绍了关于C#中yield关键字的深入解析,文中通过示例代码介绍的非常详细,对大家的学习或者使用C#具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-11-11

最新评论