プログラムでbmpをjpgに替えたらエラーして困ってます・・・

このQ&Aのポイント
  • プログラムでbmp画像をjpgに変換する際にエラーが発生し困っています。
  • マネージ形式でbmp画像の情報を表示することはできましたが、ファイル名をjpgに変更すると情報が表示されずエラーとなりました。
  • エラーが発生しているプログラムの修正方法についてアドバイスをいただきたいです。
回答を見る
  • ベストアンサー

プログラムで、bmpをjpgに替えたらエラーして困ってます・・・。

マネージ形式でbmpの画像の情報をlabel1などで表示できたんですけど、ファイル名の形式をjpgにしたら、情報が表示できずにエラーしました。 どこがまちがってるか、教えてください。 エラーした、プログラムをのせるんでアドバイスお願いします。 private: System::Void button3_Click(System::Object^ sender, System::EventArgs^ e) {   Bitmap^image2; image2 = gcnew Bitmap( "画像名.jpg");   pictureBox1->Image = image2;        label3->Text = String::Format("幅(width) 高さ(height): {0}", image2->Size); } この、プログラムで、bmgの時は、image2 = gcnew Bitmap( "画像名.bmp");で、組んでエラーはなっかたんですけど、jpgの時は、image2 = gcnew Bitmap( "画像名.jpg");でしたら、エラーします。 MSDNで探してもわからず、色々試したんですがエラーしかでません。 ネットで検索してもあまりいい例が見つかりませんでした。適切なアドバイスお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#140925
noname#140925
回答No.2

確認ですが「BMPの画像ファイルの拡張子をJPGに変えただけのファイルをJPEGファイルとして読み込もうとしている」なんてオチは無いですよね? 拡張子JPGに変えただけじゃ、画像ファイルの中身はBMPなので、エラーにしかなりませんが、そういう事じゃないですよね? ちゃんと中身がJPEG形式で保存されているJPEGファイルで試しているのですよね? [参考]BMP ファイル、JPEG ファイル、および PNG ファイルから 3 つの Bitmap オブジェクトを作成する例 http://msdn.microsoft.com/ja-jp/library/system.drawing.imaging.encoder.saveflag(VS.80).aspx

その他の回答 (1)

  • SAYKA
  • ベストアンサー率34% (944/2776)
回答No.1

で、なんてエラーが出るの? jpegはwindowsペイントで開けるの? 使ってる開発環境は? 回答者はエスパーじゃないぞ

関連するQ&A

  • VC++のマネージ形式での課題で・・・。

    VC++で、ビットマットフォーマットをマネージ形式でをする。課題がでました。 課題は、ピクチャーボックスにbmpファイルを表示して、表示したbmpからボタンを使って、ラベルや、テキストボックスに、そのbmpのバイト数や、画像に関する、情報を表示する課題です。 今は、ピクチャーボックスから画像を出すことはできたんですが、その後にどうやって画像に関する色のバイト数や、情報をマネージ形式で表示するかわかりません。 プログラムつくってもエラーばっかでわかりません。 例として、ボタン1をクリックして、ボタン1でラベルにbmpのバイト数を出したいんですがエラーします。 プログラム例は、  botton1 click ・・・ { bitmap^bmp; bmp = Bitmap("bmpのファイル名"); label1->Text = bmp; }   これで、ずっとエラーします。誰か適切なアドバイスください。いろいろサイトみてもMFC形式のやりかたばかりでわかりません。 マネージ形式でのやり方を教えてください。

  • 二つの画像を並べて表示

    ひとりで独学でVC++2005を勉強してるのですが、pictureBoxでつまずいます。初心者ですがわかりやすく教えて頂けたらと思います。 やりたい事はタイトル通り、画像を単純に並べて表示したいだけなのですが、WEB場で検索しても的を得た答えが見つかりませんでした。 二つの画像を読み込んで、新しいBitmapデータに書き込めばいいのかと思ったのですが、どうやっていいのか見当が付きません。 Bitmap^ bmpA = gcnew Bitmap("testAA.bmp"); Bitmap^ bmpB = gcnew Bitmap("testAB.bmp"); int w = bmpA->Width + bmpB->Width; int h = bmpA->Height + bmpB->Height; Bitmap^ bmp = gcnew Bitmap(w,h); //ここで何やっていいかわかりません。 pictureBox1->Image = bmp; 最終的にはタイル的にどんどん並べて行きたいと考えています。 助言の方よろしくお願いします。

  • Open CVについて

    現在,OpenCVとVC++2008のC++/CLIでwindows formアプリケーションを作成しています。 フォーム上のpictureBoxにUSBカメラから取得した画像を,録画しながら,pictureBoxに表示させています。しかし,取り込んだ画像が,pictureBoxに収まり切っていないようです。(添付画像のようなに枠内の画像に対して,肌色部分しか,pictureBoxに表示されていない状態) コードは http://hisoap.jugem.jp/?eid=156 を参考に,以下のように記述しています。 CvCapture *capture srcImage = cvQueryFrame(capture); Bitmap^ bmpPicBox = gcnew Bitmap(pictureBox->Width, pictureBox->Height); pictureBox->Image = bmpPicBox; Graphics^g = Graphics::FromImage(pictureBox->Image); Bitmap^ bmp = gcnew Bitmap(pictureBox->Width, pictureBox->Height, srcImage->widthStep,System::Drawing::Imaging::PixelFormat::Format24bppRgb, IntPtr(srcImage->imageData)); g->DrawImage(bmp, 0, 0, srcImage->width , srcImage->height); どのようにすれば,画像をpictureBoxにぴったりと表示させることができるでしょうか?

  • VC++2005で高解像度画像の取り扱い。

    いつも質問ばかりで申し訳ないのですが、独学で勉強していて聞ける人がいないので協力して頂けたらと思います。 VC++2005のOS Windows32bit環境で高解像度(10240pixel × 10240pixel以上)の画像を取り扱うにはどうしたら良いのでしょうか? Bitmap^ bmp = gcnew Bitmap( 10240, 10240 ); ~省略 pictureBox1->Image = bmp ; のような書き方をして、エラーが出てる場所は Bitmap^ bmp = gcnew Bitmap( 10240, 10240 ); の部分です。 Bitmap^ bmp = gcnew Bitmap( 5120, 5120 ); だと平気です。 メモリーが不足しています。と警告が出てるのですが、はやり32bit環境では限界なのでしょうか? PCには8GB(うち5GB、RAMディスク)のメモリーを積んでますが、そう言う問題でもないですよね。 PhotoShopやAftterEffectとかはかなりの高解像度でも表示出来てるので不可能では無いとは思うのですが、初心者レベルでは無謀なのでしょうか? 何か打開策があれば教えて頂けたら助かります。 よろしくお願いします。

  • 助けてくださいjpgがbmpになってしまいます

    助けてください 昨日までは普通にjpg形式の画像で保存できたのに プロパティにjpgと表示されているにも関わらず 保存時にbmpになってしまいます なぜでしょうか?解決方法がありましたら 教えてください

  • Visual Studio 2005でWindowsフォームのプログラミングについて

    「Visual Studio 2005」のC++でWindowsフォームのプログラミングをしているのですが、画像保存ができなくて困ってます。 「開く」はどうにか参考書を見ながらできましたが、「保存」ができません。以下がプログラムとなっております。 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^ dlg = gcnew SaveFileDialog();  dlg->Filter = "ビットマップ(*.bmp) | *.bmp | jpeg(*.jpg;*.jpeg) | *.jpg;*.jpeg | すべてのファイル(*.*) | *.*";  if(dlg->ShowDialog() != System::Windows::Forms::DialogResult::OK){    return;  } /*** ここからわかりません。 ***/ } 知ってる方がいましたら教えてください。よろしくお願いします。

  • プログラムへの画像埋め込み(?

    Visual C++でカレンダーを作っています 前後矢印のボタンを押せば、カレンダーがそれぞれ前後の月に移動し それに伴いカレンダー脇に表示される画像も変更される、 というプログラムなのですが、デバッグではキチンと動くのに いざアプリケーション単体では動作しません。 素人ながら思うには、プログラム中では private: void Hyouji(System::Object^ sender, System::EventArgs^ e) { DateTime tm=DateTime(myYear,myMonth,1); String^ FileName="Gazou/"+filename[myMonth-1]+".jpg"; monthCalendar1->SelectionStart=tm; monthCalendar1->SelectionEnd=tm; pictureBox1->Image=gcnew Bitmap(FileName); this->Invalidate(); } として、Gazouフォルダ内の画像を参照しているから起動しているのであって アプリケーション単体ではそれができていないのだと思うのですが、 はたしてそれで合っていますでしょうか。 もしそうならば プログラム中に画像ファイルを埋め込むことができれば解決すると思うのですが、 それにはどうすれば良いか、ご教授願えますでしょうか よろしくお願いします

  • 配列を使ったビットマップクラス

    VC++を使ったフォームアプリケーションでビットマップなどの画像を表示させ、ピクセル処理を施せるプログラムを作りました。このプログラム上ではピクチャボックスを1つ用意していますが、今後もっと多くのピクチャボックスが必要になってきます。以下のプログラムではBitmapクラスのbmpをピクチャボックス1の画像に入れています。単純にBitmapクラスのbmpを増やせば(例:bmp1)、ピクチャボックスが増えても平気ですが、処理の関係上配列を使いたいと思っています。なので下に書いてあるプログラムのbmp->という部分をbmp[0]->というふうに変えたいと考えています。自分なりに調べて(1)、(2)の部分を変えればいいと思うのですがどうもうまくいきません。わかる方がいたらご教授ください、おねがいします。 #pragma once namespace bmp { using namespace System; using namespace System::ComponentModel; using namespace System::Collections; using namespace System::Windows::Forms; using namespace System::Data; using namespace System::Drawing; using namespace System::Text; using namespace System::Collections::Generic; /// <summary> /// Form1 の概要 /// /// 警告: このクラスの名前を変更する場合、このクラスが依存するすべての .resx ファイルに関連付けられた /// マネージ リソース コンパイラ ツールに対して 'Resource File Name' プロパティを /// 変更する必要があります。この変更を行わないと、 /// デザイナと、このフォームに関連付けられたローカライズ済みリソースとが、 /// 正しく相互に利用できなくなります。 /// </summary> public ref class Form1 : public System::Windows::Forms::Form { public: Form1(void) { InitializeComponent(); // //TODO: ここにコンストラクタ コードを追加します // bmp = nullptr; ……… (1) //Bitmap^ bmp[300]; }      //省略// #pragma endregion //private: array<Bitmap^>^ bmp = gcnew array<Bitmap^>(300); ……… (2) private: Bitmap^ bmp; private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e) { bmp = gcnew Bitmap("C:/Documents and Settings/Owner/デスクトップ/lena.bmp",true); pictureBox1->Image = bmp; } private: System::Void pictureBox1_Click(System::Object^ sender, System::EventArgs^ e) { /*bmp = gcnew Bitmap("C:/Documents and Settings/Owner/デスクトップ/lena.bmp",true);*/ int x,y; int w = bmp->Width; int h = bmp->Height; for(x = 0; x < w; x++){ for(y = 0; y < h; y++){ if(x < (w * 0.05) || y < (h * 0.05) || (y > (h - (h*0.05)))&&(y < h) || (x > (w - (w*0.05)))&&(x < w)){ Color pixelColor = bmp->GetPixel( x, y ); Color newColor = Color::FromArgb( 255, 0, 0 ); bmp->SetPixel( x, y, newColor ); } } } pictureBox1->Image = bmp; } private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { } }; }

  • 画像をbmp形式からjpg形式にするには?

    似たような質問がありましたが、解決しなかったのでもう1度質問させていただいています。 bmp形式で保存した画像をjpg形式には直せないんでしょうか??できれば、一枚ずつ変換するのではなくて、一括して変換できるやり方を教えてほしいです。 ホームページを作り始めたんですけど、今まで画像は全部bmp形式で保存してきたのに、そこにはjpg形式の画像しか貼り付けられないんです><

  • VB.netでのPictuerBoxに描写した内容の保存について。

    VB.netでのPictuerBoxに描写した内容の保存について。 PictureBoxに描写した内容を保存してみると、描写した項目事態は正しく保存されているのですが、背景が真っ黒になってしまいますこれは、なぜなのでしょうか? ソースは以下の様な感じです。 Dim bmp As Bitmap Dim g As Graphics bmp = New Bitmap(PictureBox1.Width, PictureBox1.Height) PictureBox1.Image = bmp g = Graphics.FromImage(PictureBox1.Image) g.DrawLine(Pens.AliceBlue, 0, 10, 20, 10) PictureBox1.Refresh() PictureBox1.Image.Save("test.jpg", System.Drawing.Imaging.ImageFormat.Jpeg) どなたかわかる方よろしくお願いいたします。

専門家に質問してみよう