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

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
旅人

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

#1

投稿記事 by 旅人 » 8年前

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

よろしくお願いします。

アバター
keito94
記事: 264
登録日時: 8年前
連絡を取る:

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

#2

投稿記事 by keito94 » 8年前

あのー、C++/CLIですか?
デバッグは投げ捨てるものではない。
今までの質問でこれは学んだこと。
質問する時は、必ずちゃんと調べた上に問題をもとにした仕様書を作ってから質問すること。
仕様書の大切さを改めて思い知った…。

旅人

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

#3

投稿記事 by 旅人 » 8年前

>keito94 さん
返信ありがとうございます。

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

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

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

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

#4

投稿記事 by みけCAT » 8年前

旅人 さんが書きました:下記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++としてコンパイルしようとしているので、エラーが出ているのでしょう。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

旅人

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

#5

投稿記事 by 旅人 » 8年前

>みけ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を作るしかないのでしょうか?

返信

“C言語何でも質問掲示板” へ戻る