ページ 11

System.Drawing.Bitmapクラスの使い方

Posted: 2017年4月04日(火) 17:53
by 旅人
C++を用いてビットマップ画像を単純に2倍にする処理を実装しようとしています。
具体的には下記のようなコードでtest.bmpを縦横2倍に拡大した画像を得たいと思います。

コード:

//元の画像
Bitmap^ src = gcnew Bitmap("test.bmp");
//拡大画像(2倍に拡大)
Bitmap^ dstBig = gcnew Bitmap(src, src->Width * 2, src->Height * 2);
//画像の保存
dstBig->Save("BigImage.bmp", Imaging::ImageFormat::Bmp);
現在生じているエラーは
エラー 1 error C2065: 'Bitmap' : 定義されていない識別子です。
エラー 2 error C2065: 'src' : 定義されていない識別子です。
エラー 3 error C2065: 'gcnew' : 定義されていない識別子です。
エラー 4 error C2146: 構文エラー : ';' が、識別子 'Bitmap' の前に必要です。
・・・

と内容を見る限りでは、importが出来ていないために生じているエラーのように思われます。
いろいろ調べてみたものの、 System.Drawing.Bitmapのサンプルを掲載したサイトではimport文らしき宣言は見当たりませんでした。

参考にしたサイト
http://imagingsolution.blog107.fc2.com/ ... y-252.html
https://msdn.microsoft.com/ja-jp/librar ... -snippet-2

ご存知の方からすれば基本中の基本の質問かもしれませんが、何分C++やvisual studioについてまだまだ初心者であります。
このSystem.Drawing.Bitmapを使用するためにはどうすればよいかアドバイス頂けないでしょうか?

開発環境 : vs2012 express, win7 32bit

よろしくお願いします。

Re: System.Drawing.Bitmapクラスの使い方

Posted: 2017年4月04日(火) 17:58
by keito94
あのー、C++/CLIですか?

Re: System.Drawing.Bitmapクラスの使い方

Posted: 2017年4月04日(火) 18:54
by 旅人
>keito94 さん
返信ありがとうございます。

恥ずかしながらC++/CLIがどのようなものか理解しておりませんでしたので調べてみました。
下記yahoo知恵袋で解説されているC++/CLIの文法は使ったことがないので今のところC++/CLIは使用したことは無いと思います。(ソリューションファイル・プロジェクトの設定を一通り見てみましたが、C++/CLIの記述はありませんでした)
https://detail.chiebukuro.yahoo.co.jp/q ... NMSQ%3D%3D

分かりやすい方法であれば、C++でもC++/CLIでも特にこだわりはありません。
何かアドバイス等ございますでしょうか。

Re: System.Drawing.Bitmapクラスの使い方

Posted: 2017年4月04日(火) 22:12
by みけCAT
旅人 さんが書きました:下記yahoo知恵袋で解説されているC++/CLIの文法は使ったことがないので今のところC++/CLIは使用したことは無いと思います。
これはひどい言い訳だと感じます。
まず、「参考にしたサイト」の1つ目
【C++/CLI】画像データの拡大縮小 画像処理ソリューション
には、タイトルにはっきりと「C++/CLI」と書かれています。
さらに、このYahoo!知恵袋のページにも
abiko_tetu さんが書きました: [文法上の違い]

C++のポインタを示す * は、C++/CLI では ^ です。
C++の new は、gcnew です。
参照型を示す & は、% です。
NULL は、nullptr。
等々
という解説があり、No: 1で貼られたコードには^もgcnewも使用されているので、
「下記yahoo知恵袋で解説されているC++/CLIの文法は使ったことがない」というのは事実に反します。
旅人 さんが書きました: (ソリューションファイル・プロジェクトの設定を一通り見てみましたが、C++/CLIの記述はありませんでした)
C++/CLIのコードなのに普通のC++としてコンパイルしようとしているので、エラーが出ているのでしょう。

Re: System.Drawing.Bitmapクラスの使い方

Posted: 2017年4月05日(水) 09:57
by 旅人
>みけCATさん
返信ありがとうございます。

こちらの説明が不足していたかもしれません。
恥ずかしながらC++/CLIがどのようなものか理解しておりませんでしたので調べてみました。
下記yahoo知恵袋で解説されているC++/CLIの文法は使ったことがないので今のところC++/CLIは使用したことは無いと思います。(ソリューションファイル・プロジェクトの設定を一通り見てみましたが、C++/CLIの記述はありませんでした)
→これまでのプログラミングでC++/CLIの「^」や「gcnew」といった文法で記述した経験はなく、今回初めてC++/CLI文法でのコーディングを試みております。

C++/CLIのコードなのに普通のC++としてコンパイルしようとしているので、エラーが出ているのでしょう。
→こちらのヒントを参考に、visual studioのコンパイル設定をC++からC++/CLIにできないか調べてみましたが、そのような設定がなさそうです。こちらはあらためて新規プロジェクトとしてC++/CLIを作るしかないのでしょうか?