2012-12-09 54 views
0

我正在調整圖像大小併爲圖像添加水印。並返回圖像。這是我的代碼。重新調整大小並添加水印後控制圖像文件大小

Image resizedImage = ResizeImage(original6, new Size(500, 375)); 

重新大小功能:

public static System.Drawing.Image ResizeImage(System.Drawing.Image image, Size size) 
{ 
    int newWidth; 
    int newHeight; 
    if (true) 
    { 
     int originalWidth = image.Width; 
     int originalHeight = image.Height; 
     float percentWidth = (float)size.Width/(float)originalWidth; 
     float percentHeight = (float)size.Height/(float)originalHeight; 
     float percent = percentHeight < percentWidth ? percentHeight : percentWidth; 
     newWidth = (int)(originalWidth * percent); 
     newHeight = (int)(originalHeight * percent); 
    } 
    else 
    { 
     newWidth = size.Width; 
     newHeight = size.Height; 
    } 
    System.Drawing.Image newImage = new Bitmap(newWidth, newHeight); 
    using (Graphics graphicsHandle = Graphics.FromImage(newImage)) 
    { 
     graphicsHandle.InterpolationMode = InterpolationMode.HighQualityBicubic; 
     graphicsHandle.DrawImage(image, 0, 0, newWidth, newHeight); 
    } 


    System.Drawing.Bitmap bitmapimage = new System.Drawing.Bitmap(newImage, size.Width, size.Height);// create bitmap with same size of Actual image 
    System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bitmapimage); 

    SolidBrush brush = new SolidBrush(Color.FromArgb(113, 255, 255, 255)); 
    //Adding watermark text on image 
    g.DrawString("My watermark", new Font("Arial", 16, FontStyle.Bold), brush, 5, 100); 

    return bitmapimage; 
} 

我與水印檢索新的重新大小的圖像,並要保存爲新圖像文件。

resized6.Save(Server.MapPath(sSavePath + ownerRef + "Pic6v2" + ".jpg")); 

這工作正常。但是我無法控制文件大小。 當我的原始JPG只有45kb,但當我的新的重新大小的圖像是500kb。我怎樣才能減小文件大小? info:原始分辨率(400x300像素)和新圖像(500x375像素)

回答

相關問題