私は今Visual Studio 2005(C++)のフォームアプリケーションでプログラムを組んでいるのですが、ビットマップ処理ができません。以下のプログラムにどのような変更を加えればできるようになるのでしょうか?
ご存知の方がいたら教えてください。
#pragma once
~フォームのデザイン部分のプログラム(自動)なので省略いたします~
#pragma endregion
private: Bitmap^ bmp;
private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e) {
}
private: System::Void 開くOToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
OpenFileDialog^ myDLG = gcnew OpenFileDialog();
myDLG->AddExtension = true;
myDLG->DefaultExt = "bmp";
myDLG->FileName = "*.bmp";
myDLG->ShowReadOnly = false;
myDLG->Filter = "ビットマップ(*.bmp) | *.bmp | jpeg(*.jpg;*.jpeg) | *.jpg;*.jpeg";
if(myDLG->ShowDialog() == System::Windows::Forms::DialogResult::OK){
this->Text = myDLG->FileName;
pictureBox1->Image = gcnew Bitmap(myDLG->FileName);
Invalidate();
}
}
private: System::Void 保存SToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
SaveFileDialog^ myDLG = gcnew SaveFileDialog();
myDLG->AddExtension = true;
myDLG->DefaultExt = "bmp";
myDLG->FileName = "*.bmp";
myDLG->Filter = "ビットマップ(*.bmp) | *.bmp | jpeg(*.jpg;*.jpeg) | *.jpg;*.jpeg | すべてのファイル(*.*) | *.*";
if(myDLG->ShowDialog() != System::Windows::Forms::DialogResult::OK){
return;
}
pictureBox1->Image->Save(myDLG->FileName);
Invalidate();
}
private: System::Void 閉じるCToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
if(MessageBox::Show("アプリケーションを終了しますか?","画像描画",MessageBoxButtons::OKCancel,MessageBoxIcon::Question)
== System::Windows::Forms::DialogResult::OK){
this->Close();
}
}
private: System::Void 編集ToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
}
private: System::Void 回転180ToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
}
}
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
こんばんは。
ピクチャーボックス内のビットマップを180度回転させたいのでしょうか?
であるのでしたら、これで回転出来る筈です。以下参考に。
private: System::Void 回転180StripMenuItem_Click(System::Object^ sender, System::EventArgs^ e)
{
pictureBox1->Image->RotateFlip(System::Drawing::RotateFlipType::Rotate180FlipX);
pictureBox1->Invalidate();
}
この回答への補足
返事が遅れてしまい申し訳ありません。
すみません、回転180°というのはちゃんとビットマップ処理ができているかの確認用に作ったものなんです。
できればビットマップ処理をして動作できるようなプログラムがしたいのです。
例えば、
void CImage2Doc::Stock()
{
for(y=0 ; y<bmpY ; y++)
{
for(x=0 ; x<bmpX ; x++)
{
StockImage[x*3+y*bmpL] = BmpImage[x*3+y*bmpL];
StockImage[x*3+y*bmpL+1] = BmpImage[x*3+y*bmpL+1];
StockImage[x*3+y*bmpL+2] = BmpImage[x*3+y*bmpL+2];
}
}
}
という関数を用意して、
void CImage2Doc::180turn()
{
Stock();
int i;
for(y=0 ; y<bmpY ; y++)
{
i=bmpX;
for(x=0 ; x<bmpX ; x++)
{
BmpImage[x*3+y*bmpL] = StockImage[i*3+y*bmpL];
BmpImage[x*3+y*bmpL+1] = StockImage[i*3+y*bmpL+1];
BmpImage[x*3+y*bmpL+2] = StockImage[i*3+y*bmpL+2];
i--;
}
}
InvalidateRect(NULL,NULL,FALSE);
}
としてあげれば180°回転してくれるとおもうのですが、私がやりたいのはまさにこのような方法で、そういった処理をするにはどのような記述が必要なのか教えていただければなと思います。
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# Windows Formアプリからコンソールを呼び出して文字を出力させたい 8 2023/05/09 10:53
- C言語・C++・C# C# DatagridviewにExcelシートを反映するとエラーが出る 2 2023/05/06 17:12
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- 英語 『G19 Gen5 MOS - Modular Optic System for Gen5』 の 『 1 2023/03/05 13:37
- C言語・C++・C# 大量のデータを読み込んで表示する速度を改善したい 8 2023/05/07 13:29
- Visual Basic(VBA) Visual Basic : ImageListの画像がそろったときにメッセージを表示 1 2023/07/20 13:53
- 英語 Modular Optic System (MOS)とは、一体どの様な物の事なのかを教えてください。 1 2023/03/03 09:52
- 英語 下記の英文の日本語訳をお願いします。 1 2023/03/02 10:01
- 英語 下記の英文を日本語に訳して、その意味を教えてください。 1 2023/03/09 14:13
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VC++フォームアプリケーション ...
-
C# FlowLayoutPanelのコントロ...
-
グラフの交点の求め方(Excel)
-
ゲームでは結局どっちが良いの?
-
マインクラフト(pc版)で座標...
-
コントロール内の文字の背景色
-
エクセルで作った新しいウイン...
-
UWSCで特定のChromeのタブをア...
-
勝手にウィンドウが開いて止ま...
-
Tera Termに他のアプリから文字...
-
エクセルのコントロールツール...
-
コンボボックス内の文字サイズ変更
-
Labelの文字をスクロールする際...
-
「アイテムは収集されました」...
-
ピクチャボックスの座標取得
-
他アプリの操作(メニューバー)
-
Windowのちらつき防止
-
コントロールの書式設定で、“コ...
-
PCで「使用可能な場合はグラフ...
-
EXCEL VBA でウインドウの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【C#】別フォームも同時に閉じ...
-
C#で、ある条件でFormが自動で...
-
C# 自分自身のコントロールを指...
-
別フォームからdatagridviewの削除
-
C#でテキストボックスをクリッ...
-
C# フォームを閉じてもプログラ...
-
OutLookのメール受信通知 (C#)
-
C# FlowLayoutPanelのコントロ...
-
【C#】サブフォームからメイン...
-
ASP.NetでJavaScriptからポスト...
-
VC++フォームアプリケーション ...
-
c#で次の次のフォームへのデー...
-
C#で初歩で引っかかってしまい...
-
form2 から form1に戻ったとき...
-
エクセルで作った新しいウイン...
-
グラフの交点の求め方(Excel)
-
「アイテムは収集されました」...
-
フォントの大きさ
-
コンボボックス内の文字サイズ変更
-
コントロールの書式設定で、“コ...
おすすめ情報