• ベストアンサー

フォルダ単位で

bmpファイルを読み込んで加工するプログラムを組んだのですが、これをフォルダを指定してそのフォルダ内すべての画像を一括処理するようにしたいのですが、どうゆうふうにすればいいでしょうか?初心者なので言葉足らずかもしれませんが、お願いします。

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

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

これを行うにはAPIによる フォルダ内のファイルの検索を行えば解決できるはずです。 まず、ヘッダーは #include <windows.h> を宣言してください。 処理部分では char FilePath[] = "C:\\Temp\\*.bmp"; // ← Tempフォルダ内のbmpファイルを指定しています char FindPath[ MAX_PATH ]; HANDLE hFind; WIN32_FIND_DATA fd; // ファイルを検索 hFind = FindFirstFile( FilePath, &fd ); if( hFind == INVALID_HANDLE_VALUE ) // 未発見 return; do { strcpy( FindPath, fd.cFileName ); printf("%s\n", FindPath ); } while( FindNextFile( hFind, &fd ) ); // 後処理 FindClose( hFind ); あとはFindPath変数に格納されているパスを参照して bmpファイルを読み込めばできるはずです。 参考になったでしょうか。 (初心者にはAPIは難しかったかな(^_^;)) とりあえず、実行して処理を確認してみてください。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.1

それは OS やそれを動かすシェルによってやり方が異なります。 UNIX系OSの場合はディレクトリ名だけ与えられてその中のファイル名を探す場合は glob() か opendir(), readdir(), closedir() などの関数でできます。 Windows の場合は FindFirstFile() と FindNextFile() のような関数があったと思います。(UNIXと同じ glob() やopendir() などをこれを使って実現しているライブラリ関数がコンパイラによってはあるかも知れません。もしあればUNIXと同じように作れます)。

leadrih
質問者

お礼

回答ありがとうございます。 OSはwindowsXpです。それらの関数について調べてみたいと思います。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • BMPの切り抜きについて質問が有ります。

    BMPの切り抜きについて質問が有ります。 こんなフリーウェアが有ったら教えてください。 ・BMP内のある一部分を切り抜く ・上記の「ある」部分をXY座標で指定出来る ・切り抜き後も元画像からの劣化はしない ・フォルダ内全てに対し、同処理が一括で処理出来る。 要は、一つのフォルダ内に有る同じようなBMPファイルから、 それぞれ同じ個所を一気に切り出して、全て他の場所に保存させたいと思ってます。 JTrimはXY指定は出来るようですが、画像劣化が有りそうです・・・。 教えてください。

  • フォルダごと画像サイズを小さく

    あるフォルダにたくさん、bmp 画像ファイルが あるのですが、これを jpeg や gif にするのではなく bmp ファイルのまま、画像解像度サイズを一括して 一回りふたまわり小さくしたいのです。 ( 一つ一つあけて 80% 指定 でセーブしなおす、とか だと日が暮れてしまうので ) いろいろ探しているのですが、なかなか都合よく みつからないようなので、何か情報がありましたら よろしくお願いします。 尚、会社購入したフォトショップ、イラストレーター 等もありますが、ひょっとしてこれでできるのかも? イマイチ使い方がよくわかりません。。。

  • OpenCvライブラリを使い、C++を用いてウェブカメラを監視カメラみ

    OpenCvライブラリを使い、C++を用いてウェブカメラを監視カメラみたいな役割をさせようとしています。 そこで、1秒ごとに画像をキャプチャし、10秒(10枚)までを指定したフォルダに保存する。 (例)     ファイル名   1秒の画像   file1.bmp 2秒の画像   file2.bmp ・ ・ ・ ・   10秒の画像   file10.bmp と、こんな風に そして、保存していた背景画像と、1~10枚撮った画像を比較していき、違いが出たら、 違いが出た画像だけを別のフォルダに保存するというプログラムを作ろうとしています。 OpenCv,C++初心者なので、うまく伝えられているか分かりませんが、宜しければプログラムを教えてください。

  • SkyDriveへのフォルダー単位のアップロードはできないのか?

    SkyDriveへのアップロードはファイル単位ではできるがフォルダー単位のはできないのか? これでは写真画像を数多く持つフォルダーのアップロードを一括処理ができず写真を一枚づつ送るという膨大な作業になってしまう。 解決法を教えてください。

  • cvSaveImageで画像を保存する際のフォルダ指定

    現在C++,OpenCVを用いてプログラム内で生成した画像をフォルダを指定して1フォルダ内に100枚程度の画像をどんどん保存していくというプログラムを作成しています。 そこで、フォルダを指定してcvSaveImageで画像を保存しようとすると、エラーが出てしまい保存する前にプログラムがダウンしてしまいます。 具体的には以下のとおりです。 変数 char filename[]; //出力画像の名前 char path[] = "testdir";//相対パス名(フォルダ指定用) IplImage* testimage; //生成した画像 成功例(フォルダ指定なし) sprintf(file,"%s\\test.bmp",path,); cvSaveImage(file, testimage); 失敗例(フォルダ指定あり) sprintf(file,"%s\\test.bmp",path,); cvSaveImage(file, testimage); 環境は Win XP Pro 2002 sp3 Visual C++ 2008 Express Edition OpenCV1.1 です。 どなたかご教授お願いいたします。

  • フォルダ内の画像を、フォルダを開かずに別フォルダに移動したいのですが

    複数のフォルダ内に様々な拡張子の画像があります。 フォルダ名  JPG   GIF   BMP AAA    20個   100個   0個 BBB   120     10    2 CCC  2100      0   30 -------------------------------------------- DDD  2140個 これをDDDフォルダ内にJPGだけまとめたいのですが AAA開いてJPGだけを移動して、BBB開いて、、、、 したくなくて、一括処理でできるフリーソフト (あるいはWindows内のソフト)は あるでしょうか?

  • フォルダ一括画像縮小ソフトを教えてください

    あるフォルダに入ってる画像を一括して縮小できるソフトを教えてください。 ただし、次のすべての条件を満たしているものを希望しています。 ・さまざまなサイズの画像を、指定のサイズ(たとえば720x720)に収まるよう、一括で縮小してくれる ・指定のサイズに収まるよう、縦横比を変えないで縮小できる機能がある ・保存できる画像の種類を指定できる(jpeg、gif、bmpなど) ・jpeg圧縮の場合は、圧縮率を設定できる 有料ではなく無料ソフトを希望しています。 よろしくお願いします。

  • プログラム

    フォルダーに画像が1.bmp 2.bmp 3.bmpという風にあります。 それをフォルダーの画像の並びを変えて2.bmp 1.bmp 3.bmpとするプログラムを書くのと、関数を追加したプログラムを書くのとでは、 結果はどのように変わるでしょうか? 教えてください

  • フォルダ下のファイルとフォルダを全て削除したい

    指定したフォルダ配下のファイルとフォルダを、一括ですべて削除したいのです(指定したフォルダは残します)。DELコマンドでも、RMDIRコマンドでもできません。なにかいい方法がありますでしょうか。

  • フォルダにある特定のファイルだけを処理したい

    applescriptでフォルダの中の画像ファイルを一括でJPEG保存する作業をしているのですが、たくさんあるファイルの中で「save.jpg」という名前のファイルだけを処理できるようにしたいのです。 このような場合、どういうふうにファイルリストを取得していったらいいのでしょう?

このQ&Aのポイント
  • PX-M730Fのインクカートリッジ交換ができず、困っています。ガイドに従ってスキャナーユニットを開けてもカートリッジが移動しません。どうすれば交換できるのでしょうか?
  • PX-M730Fのインクカートリッジ交換について困っています。スキャナーユニットを開けるときちんとカートリッジが移動してくれないので、交換ができません。解決方法を教えてください!
  • EPSON PX-M730Fでインクカートリッジの交換ができません。スキャナーユニットを開けてもカートリッジが動かず、どうすればいいのか分かりません。お助けください!
回答を見る