2011-06-17 42 views
6

我希望能夠拍攝低質量的畫面圖像。我可以拍一張位圖圖片,但無論我做什麼,我都不能降低它的質量。拍攝低質量的畫面圖片

+0

你的意思是降低顏色深度或減少像素數? –

+0

盡我所能,以減少文件大小。 –

+0

還是要保持分辨率,並將其轉換成像png或jpeg這樣的有損壓縮格式? –

回答

3
Image bmp1 = GetScreenImage(); 

// Save the image as a GIF. 
bmp1.Save("c:\\button.gif", System.Drawing.Imaging.ImageFormat.Gif); 

Msdn for more

3

我會嘗試將圖像轉換爲壓縮的jpeg。關於jpegs的好處是你可以設置質量應該有多高(即你想壓縮多少):

注意:質量應該在1到100之間(100是最大尺寸/最高質量和1是最小尺寸/質量最低。

public void save(string filename, Bitmap img, int quality) 
{ 
    // quality encoding 
    EncoderParameter qualParam = new EncoderParameter(Encoder.Quality, quality); 

    // code for jpeg image type 
    ImageCodecInfo jpegCodec = FindEncoderInfo("image/jpeg"); 


    EncoderParameters encoderParams = new EncoderParameters(1); 
    encoderParams.Param[0] = qualParam; 

    img.Save(filename, jpegCodec, encoderParams); 
} 

private ImageCodecInfo FindEncoderInfo(string mimeType) 
{ 
    // search through all codecs for all formats 
    ImageCodecInfo[] codecs = ImageCodecInfo.GetImageEncoders(); 

    for (int i = 0; i < codecs.Length; i++) 
    { 
     if (codecs[i].MimeType == mimeType) 
     { 
     return codecs[i]; 
     } 
    } 
    return null; 
}