YongGe

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
asp.net生成缩略图,打水印得类,代码如下:
using System;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;

namespace BLL
{
    
public class ImageUtil
    
{
        
public static void addWatermarkImage(Graphics picture, string WaterMarkPicPath, string _watermarkPosition, int _width, int _height)
        
{
            Image image 
= new Bitmap(WaterMarkPicPath);
            
int x = 0;
            
int y = 0;
            
int width = image.Width;
            
int height = image.Height;
            
string str = _watermarkPosition;
            
if (str != null)
            
{
                
if (!(str == "WM_TOP_LEFT"))
                
{
                    
if (str == "WM_TOP_RIGHT")
                    
{
                        x 
= (_width - width) - 10;
                        y 
= 10;
                    }

                    
else if (str == "WM_BOTTOM_RIGHT")
                    
{
                        x 
= (_width - width) - 10;
                        y 
= (_height - height) - 10;
                    }

                    
else if (str == "WM_BOTTOM_LEFT")
                    
{
                        x 
= 10;
                        y 
= (_height - height) - 10;
                    }

                    
else if (str == "WM_BOTTOM_MIDDLE")
                    
{
                        x 
= (_width / 2- (width / 2);
                        y 
= (_height - height) - 10;
                    }

                    
else if (str == "WM_TOP_MIDDLE")
                    
{
                        x 
= (_width / 2- (width / 2);
                        y 
= 10;
                    }

                }

                
else
                
{
                    x 
= 10;
                    y 
= 10;
                }

            }

            picture.DrawImage(image, x, y, width, height);
            image.Dispose();
        }


        
public static void MakeThumbnail(string originalImagePath, string thumbnailPath, int width, int height, string mode)
        
{
            
string str;
            Image image 
= Image.FromFile(originalImagePath);
            
int num = width;
            
int num2 = height;
            
int x = 0;
            
int y = 0;
            
int num5 = image.Width;
            
int num6 = image.Height;
            
if (((str = mode) != null&& (str != "HW"))
            
{
                
if (!(str == "W"))
                
{
                    
if (str == "H")
                    
{
                        num 
= (image.Width * height) / image.Height;
                    }

                    
else if (str == "Cut")
                    
{
                        
if ((((double)image.Width) / ((double)image.Height)) > (((double)num) / ((double)num2)))
                        
{
                            num6 
= image.Height;
                            num5 
= (image.Height * num) / num2;
                            y 
= 0;
                            x 
= (image.Width - num5) / 2;
                        }

                        
else
                        
{
                            num5 
= image.Width;
                            num6 
= (image.Width * height) / num;
                            x 
= 0;
                            y 
= (image.Height - num6) / 2;
                        }

                    }

                }

                
else
                
{
                    num2 
= (image.Height * width) / image.Width;
                }

            }

            Image image2 
= new Bitmap(num, num2);
            Graphics graphics 
= Graphics.FromImage(image2);
            graphics.InterpolationMode 
= InterpolationMode.High;
            graphics.SmoothingMode 
= SmoothingMode.HighQuality;
            graphics.Clear(Color.Transparent);
            graphics.DrawImage(image, 
new Rectangle(00, num, num2), new Rectangle(x, y, num5, num6), GraphicsUnit.Pixel);
            
try
            
{
                image2.Save(thumbnailPath, ImageFormat.Jpeg);
            }

            
catch (Exception exception)
            
{
                
throw exception;
            }

            
finally
            
{
                image.Dispose();
                image2.Dispose();
                graphics.Dispose();
            }

        }

    }


}
posted on 2008-06-09 16:05  YongGe  阅读(492)  评论(0编辑  收藏  举报