.NET で画像イメージを JPEG に変換する方法
.NET で画像イメージ (Bitmap のインスタンス) を JPEG データのバイトデータにメモリ内で変換するには、以下のようにするとよい。
public static byte[] SaveAsJpeg(Bitmap bmp, int quality) { EncoderParameters eps = new EncoderParameters(1); EncoderParameter ep = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, quality); eps.Param[0] = ep; ImageCodecInfo info = getEncoderInfo("image/jpeg"); MemoryStream ms = new MemoryStream(); bmp.Save(ms, info, eps); return ms.ToArray(); } static ImageCodecInfo getEncoderInfo(string type) { ImageCodecInfo[] encs = ImageCodecInfo.GetImageEncoders(); foreach (ImageCodecInfo enc in encs) { if (enc.MimeType == type) { return enc; } } return null; }
なお、「quality」は JPEG の画質を意味する整数で、1 から 100 のうち任意の数を指定する。