/// <summary> /// Saves a jpeg BitMap to disk with a jpeg quality setting. /// Does not dispose the bitmap. /// </summary> /// <param name="bmp">Bitmap to save</param> /// <param name="outputStream">Binary stream to write image data to</param> /// <param name="jpegQuality"></param> /// <returns></returns> public static bool SaveJpeg(Bitmap bmp, Stream imageStream, long jpegQuality = 90) { try { //get the jpeg codec ImageCodecInfo jpegCodec = null; if (Encoders.ContainsKey("image/jpeg")) { jpegCodec = Encoders["image/jpeg"]; } EncoderParameters encoderParams = null; if (jpegCodec != null) { //create an encoder parameter for the image quality EncoderParameter qualityParam = new EncoderParameter(Encoder.Quality, jpegQuality); //create a collection of all parameters that we will pass to the encoder encoderParams = new EncoderParameters(1); encoderParams.Param[0] = qualityParam; } bmp.Save(imageStream, jpegCodec, encoderParams); } catch { return(false); } return(true); }
public static ImageCodecInfo GetEncoderInfo(string mimeType) { //do a case insensitive search for the mime type string lookupKey = mimeType.ToLower(); //the codec to return, default to null ImageCodecInfo foundCodec = null; //if we have the encoder, get it to return if (Encoders.ContainsKey(lookupKey)) { //pull the codec from the lookup foundCodec = Encoders[lookupKey]; } return(foundCodec); }