2011-06-17 15 views
6

Chcę móc wykonać obraz o niskiej jakości na ekranie. Mogę zrobić zdjęcie bitmapowe, ale bez względu na to, co robię, nie mogę obniżyć jego jakości.Wykonywanie zdjęcia o niskiej jakości ekranu

+0

masz na myśli zmniejszenie głębi kolorów lub zmniejszając liczbę pikseli? –

+0

Cokolwiek mogę zmniejszyć rozmiar pliku. –

+0

czy chcesz zachować rozdzielczość i przekształcić go w stratny skompresowany format, jak png lub jpeg? –

Odpowiedz

3
Image bmp1 = GetScreenImage(); 

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

Msdn for more.

3

Chciałbym spróbować przekonwertować obraz na skompresowany jpeg. Zaletą jpegs jest to, że możesz ustawić wysoką jakość (np. Ile chcesz skompresować):

Uwaga: jakość powinna wynosić od 1 do 100 (100 to największy rozmiar/najwyższa jakość i 1 jest najmniejszy rozmiar/najniższa jakość.

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; 
} 
Powiązane problemy