
プログラム上での画像作成というのはできるのでしょうか?
例えば、関数を使って、tukutu(100,100); ※(xsize,ysize)
100*100サイズの画像を作るといったことはできるのでしょうか?
しかし、作ったものをpicture1などに貼り付けられるものでないといけません。
もしくは、画像のリサイズを考えています。
例えば、rsize("a.bmp",100,100); ※("元画像",xsize,ysize)
といった感じで、もともとある画像を100*100のサイズに変える方法でもいいのですが。
画像の縮小拡大など難しいことは使わないで、もし指定のサイズより元画像が小さかったらあまりの部分に白領域を足して、大きかったら削ってしまうといった具合です。
とにかくプログラム上で指定したサイズでの画像を作成したいです。
ソフトはビジュアルスタディオを使っています。
分かる方がいましたらよろしくお願いします。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
こんばんは。
補足頂きました。う~む、チョッと不明瞭ですな。
>>CLIというのが何なのかよくわかりませんでしたが、おそらくエラーばかりでてしまうので違うものなのではないかと思います。
ビジュアルスタジオの「C++」である事は間違いなさそうでしょうか?
でしたら、
(1)を右クリック
(2)に「共通言語ランタイムサポート(/clr)」を選択すれば其のまま使える筈。
此れで無理であるならば、別の言語の可能性があります。

No.1
- 回答日時:
こんばんは。
picture1と書いてありますが、C++CLIの方でしょうか?
LoadImage()APIを使用すれば、画像の読み込みと同時にリサイズ(
ストレッチ)も出来ます。
#ifndef __BITMAP_H__
#define __BITMAP_H__
#include<windows.h>
#pragma comment(lib, "gdi32.lib")
//C++用
inline HBITMAP WINAPI LoadMyImage(LPCWSTR lpwstrFileName, int iWidth, int iHeight)
{
HBITMAP hBmp = static_cast<HBITMAP>(::LoadImage(NULL, lpwstrFileName, IMAGE_BITMAP, iWidth, iHeight, LR_LOADFROMFILE | LR_CREATEDIBSECTION));
return hBmp;
}
//C++/CLI用
inline System::Drawing::Bitmap^ LoadMyImage(System::String^ sFileName, int iWidth, int iHeight)
{
using namespace System::Runtime::InteropServices;
//String^からLPCWSTRへ文字列変換
System::IntPtr iPtrUni = Marshal::StringToHGlobalUni(sFileName);
//ビットマップを読み込む
HBITMAP hBmp = ::LoadMyImage(static_cast<LPCWSTR>(iPtrUni.ToPointer()), iWidth, iHeight);
//変換に割り当てたメモリを消す
Marshal::FreeHGlobal(iPtrUni);
//HBITMAPを元にBitmapクラスを作成
System::Drawing::Bitmap^ bmp = System::Drawing::Bitmap::FromHbitmap(System::IntPtr(hBmp));
//HBITMAPを消去
::DeleteObject(hBmp);
return bmp;
}
#endif
使用する時(例えば、ダイアログからファイルを選択してロードする時)
private: System::Void 開くStripMenuItem1_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 = ::LoadMyImage(this->Text, 200/*任意の横幅*/, 200/*任意の縦幅*/);
//ピクチャボックスを更新する
Invalidate();
}
}
こんばんわ^^
回答ありがとうございます。
CLIというのが何なのかよくわかりませんでしたが、おそらくエラーばかりでてしまうので違うものなのではないかと思います。
私が使っているのは、ビジュアルスタディオのCRL→フォームアプリケーションというものなのですが、このプログラムのどこかだけを使えばできるんでしょうか??
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
背景画像の繰り返しについて
-
uwscについての質問です。 画面...
-
VBSでワードに画像を貼り付ける
-
同じ画像を複数回表示させる
-
画像の存在チェック
-
HTMLで画像をポップアップで表...
-
画像の一部だけが点滅する画像...
-
VB6での画像のサイズ変更に関して
-
uwscについてです
-
セックスレスの既婚女性は自慰...
-
Visual Basic 6.0 コンボボック...
-
CloseとDisposeの違い
-
エクセルで、日付を入力すると...
-
エクセルVBAで、MsgBox やInput...
-
メルカリのメルカードで買い物...
-
「ご処理進めて頂きますようお...
-
VBAでCOPYを繰り返すと、処理が...
-
PDFフォームに本日の日付を自動...
-
マウスイベントが動かない
-
オブジェクト名をVBAで指定...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCEL VBA 複数のImageコントロ...
-
VBAのユーザーフォームのイメー...
-
Excel ユーザーフォームで表示...
-
【EXCEL VBA】ダブルクリックで...
-
スマホでサイトの画像を長押し→...
-
UWSC 画像判定と条件分岐について
-
HTMLで画像をポップアップで表...
-
「using Windows」でエラーが出る
-
画像のビット数を変更する方法
-
画像処理したBitmapをピクチャ...
-
UWSC「画像が無い場合」
-
背景画像の繰り返しについて
-
PowerPoint VBA で画像の鮮明度...
-
uwcs のマクロで画像認識をして...
-
gif 画像上の ボタンに リン...
-
画像が分割されて切り替わる、...
-
uwscの画像認識に失敗します。
-
C#で画像を他の画像に貼り付け...
-
vb.net 画像の透過について
-
MFCでCImageListに画像追加失敗
おすすめ情報