`
az7772010
  • 浏览: 203787 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

C#生成图片缩略图、水印及上传的几…

 
阅读更多
最终编辑 编程学无止境

/// <summary>
/// 获取一个图片按等比例缩小后的大小。
/// </summary>
/// <param name="maxWidth">需要缩小到的宽度</param>
/// <param name="maxHeight">需要缩小到的高度</param>
/// <param name="imageOriginalWidth">图片的原始宽度</param>
/// <param name="imageOriginalHeight">图片的原始高度</param>
/// <returns>返回图片按等比例缩小后的实际大小</returns>
public static Size GetNewSize(int maxWidth, int maxHeight, int imageOriginalWidth, int imageOriginalHeight)
{
<wbr><wbr><wbr> double w = 0.0;<br><wbr><wbr><wbr> double h = 0.0;<br><wbr><wbr><wbr> double sw = Convert.ToDouble(imageOriginalWidth);<br><wbr><wbr><wbr> double sh = Convert.ToDouble(imageOriginalHeight); double mw = Convert.ToDouble(maxWidth);<br><wbr><wbr><wbr> double mh = Convert.ToDouble(maxHeight);</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr> if (sw &lt; mw &amp;&amp; sh &lt; mh)<br><wbr><wbr><wbr> {<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr> w = sw;<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr> h = sh;<br><wbr><wbr><wbr> }<br><wbr><wbr><wbr> else if ((sw / sh) &gt; (mw / mh))<br><wbr><wbr><wbr> {<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr> w = maxWidth;<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr> h = (w * sh) / sw;<br><wbr><wbr><wbr> }<br><wbr><wbr><wbr> else<br><wbr><wbr><wbr> {<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr> h = maxHeight;<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr> w = (h * sw) / sh;<br><wbr><wbr><wbr> }</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr> return new Size(Convert.ToInt32(w), Convert.ToInt32(h));<br> }</wbr></wbr></wbr>

/// <summary>
/// 对给定的一个图片(Image对象)生成一个指定大小的缩略图。
/// </summary>
/// <param name="originalImage">原始图片</param>
/// <param name="thumMaxWidth">缩略图的宽度</param>
/// <param name="thumMaxHeight">缩略图的高度</param>
/// <returns>返回缩略图的Image对象</returns>
public static System.Drawing.Image GetThumbNailImage(System.Drawing.Image originalImage, int thumMaxWidth, int thumMaxHeight)
{
<wbr><wbr><wbr> Size thumRealSize = Size.Empty;<br><wbr><wbr><wbr> System.Drawing.Image newImage = originalImage;<br><wbr><wbr><wbr> Graphics graphics = null;</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr> try<br><wbr><wbr><wbr> {<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr> thumRealSize = GetNewSize(thumMaxWidth, thumMaxHeight, originalImage.Width, originalImage.Height);<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr> newImage = new Bitmap(thumRealSize.Width, thumRealSize.Height);<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr> graphics = Graphics.FromImage(newImage);</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr><wbr><wbr><wbr> graphics.CompositingQuality = CompositingQuality.HighQuality;<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr> graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr> graphics.SmoothingMode = SmoothingMode.HighQuality;</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr><wbr><wbr><wbr> graphics.Clear(Color.Transparent);</wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr><wbr><wbr><wbr> graphics.DrawImage(originalImage, new Rectangle(0, 0, thumRealSize.Width, thumRealSize.Height), new Rectangle(0, 0, originalImage.Width, originalImage.Height), GraphicsUnit.Pixel);<br><wbr><wbr><wbr> }<br><wbr><wbr><wbr> catch { }<br><wbr><wbr><wbr> finally<br><wbr><wbr><wbr> {<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr> if (graphics != null)<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr> {<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> graphics.Dispose();<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> graphics = null;<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr> }<br><wbr><wbr><wbr> }</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr> return newImage;<br> }<br></wbr></wbr></wbr>

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics