BitmapImage src = new BitmapImage();
src.BeginInit();
src.UriSource = new Uri(dialog.FileName);
src.EndInit();
BitmapEncoder encoder = new BmpBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(src));
byte[] data;
using (MemoryStream ms = new MemoryStream())
{
encoder.Save(ms);
data = ms.ToArray();
}
MainImage.Source = src;
File.WriteAllBytes(@"D:\gtwg.bmp", data);
есть вот такой код, в wpf, выводит изображение и сохраняет его в bmp. Но bmp сохраняется в 32-ух битном формате, как можно сохранять в 24х битном?
Спасибо, я разобрался FormatConvertedBitmap, решил мою проблему.
BitmapImage src = new BitmapImage();
src.BeginInit();
src.UriSource = new Uri(dialog.FileName);
src.EndInit();
BitmapEncoder encoder = new BmpBitmapEncoder();
FormatConvertedBitmap fcb = new FormatConvertedBitmap();
fcb.BeginInit();
fcb.Source = src;
fcb.DestinationFormat = PixelFormats.Bgr24;
fcb.EndInit();
encoder.Frames.Add(BitmapFrame.Create(fcb));
byte[] data;
using (MemoryStream ms = new MemoryStream())
{
encoder.Save(ms);
data = ms.ToArray();
}
MainImage.Source = src;
File.WriteAllBytes(@"D:\gtwg.bmp", data);
Сборка персонального компьютера от Artline: умный выбор для современных пользователей