C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: ビットマップファイルのビットの深さについて


(過去ログ 40 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■20035 / inTopicNo.1)  ビットマップファイルのビットの深さについて
  
□投稿者/ じゃん (1回)-(2008/06/04(Wed) 14:15:51)

分類:[C#] 

PC環境:Windows XP、VC# 2005

まずOpenFileDialogより、ビットの深さが24bitのビットマップファイルを指定し、
以下のソースコードにてピクチャーボックス1にビットマップ画像を表示します。

Bitmap _bmp = new Bitmap(filePath);
Graphics g;

pictureBox1.Image = new Bitmap(_bmp.Width, _bmp.Height);
g = Graphics.FromImage(pictureBox1.Image);

g.DrawImage(_bmp, 0, 0);

_bmp.Dispose();
g.Dispose();

その後、SaveFileDialogにてビットマップファイルを保存します。
string filename;
int filterIndex;

SaveFileDialog saveDialog = new SaveFileDialog();

saveDialog.Filter = "Bitmap files (*.bmp)|*.bmp|JPEG files (*.jpg)|*.jpg|All files (*.*)|*.*";
saveDialog.RestoreDirectory = true;

if (saveDialog.ShowDialog() == DialogResult.OK)
{
  filename = saveDialog.FileName;
  filterIndex = saveDialog.FilterIndex;
  ImageFormat[] imageFormats = new ImageFormat[2] { ImageFormat.Bmp, ImageFormat.Jpeg };
  pictureBox1.Image.Save(filename, imageFormats[filterIndex - 1]);
  return;
}

しかし、保存されたビットマップファイルのビットの深さを見ると、
24ではなく32になってしまいます。このビットの深さを
24ビットのまま保存または、ビットの深さを指定して保存する方法はないでしょうか?

以上、よろしくお願いします。

引用返信 編集キー/
■20037 / inTopicNo.2)  Re[1]: ビットマップファイルのビットの深さについて
□投稿者/ Hongliang (273回)-(2008/06/04(Wed) 14:25:10)
Bitmap コンストラクタで Format24bppRgb 指定すればいいんじゃないですか?
// All files だと例外が出るような気が
引用返信 編集キー/
■20797 / inTopicNo.3)  Re[2]: ビットマップファイルのビットの深さについて
□投稿者/ じゃん (3回)-(2008/06/16(Mon) 18:06:47)
Hongliang さん、ありがとうございました。
C#を始めてから日が浅いものでして…、お陰で解決できました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -