• ベストアンサー

bmp → jpeg への変換

こんにちは, VC++6.0 MFC ダイアログベースでソフトを作成しています. そこでbmp画像を読み込んでjpeg画像に変換したいと思っています. プログラム自体は前任者から引き継いだものです. そこではJPEG-6bというオープンソース?を使って変換を行っています. ただ処理速度が遅く,もっと早くしたいと思っています. 他によい(JPEG-6bより高速)変換方法はないでしょうか?

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

  • ベストアンサー
  • chie65535
  • ベストアンサー率43% (8520/19368)
回答No.1

>他によい(JPEG-6bより高速)変換方法はないでしょうか? .NETが使えるなら http://www.atmarkit.co.jp/fdotnet/dotnettips/533jpgquality/jpgquality.html の方法を用いて「WindowsにインストールされているJpegエンコーダを呼び出せる」のですが…。 MFCダイアログベースでは「コーデックのリストを取得し、エンコーダを特定し、エンコーダをロードして、エンコーダの初期化をして、エンコーダに静止画1枚をフレームデータとして入力ストリームに流し込み、出力ストリームに出て来たフレームデータをjpegデータとして保存する」と言う作業を「すべて自前で」行う必要があるでしょう。 .NETの場合、ImageオブジェクトのSaveメソッドで上記のような「色々と面倒な事」を内部でやってくれるので、簡単なんですが…。 簡単ではありませんが、MFCでコーデックを呼び出して使用する方法が、必ずある筈です(当方なら、そんな苦労はしたくないので.NETに乗り換えますが) >そこではJPEG-6bというオープンソース?を使って変換を行っています. 今の時代、たいていのWindowsで標準でJpegのコーデックがインストール済みなので、自前で変換したり、追加ライブラリで変換するのは時代遅れと言えます。 .NETなど、コーデックを簡単に呼び出せる環境を使って「関数一発」が今のトレンディです。 全体を.NETに乗せ換えるのが無理なら、jpeg保存処理だけ.NETで組んで別モジュールにして、本体でモジュールをロードして呼び出して使う、などで良いかも知れません(要は、jpegの保存ルーチンをプラグイン化して、本体プログラムでプラグインをロードして使う、と言う事)

komehon
質問者

お礼

ありがとうございます. その方法で試してみようかと思います. 今回は処理速度重視なので 簡単さも重要ですが,他にもよさそうな方法があれば またお願いいたします.

その他の回答 (1)

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.2

VC6からなら GDI+かなぁ ・・・ 変換に時間がかかっているのか ファイルのIOで時間をとられているのか検証してみたほうがいいかも VC6付属のMSDNに GDI+を使ってPNGで保存するサンプルがありますよ 『Converting a BMP Image to a PNG Image』 この保存方式を決めている GetEncoderClsid(L"image/png", &encoderClsid); を GetEncoderClsid(L"image/jpeg", &encoderClsid); に変更すれば出来るはずです 参考URLは 英語版です

参考URL:
http://msdn.microsoft.com/en-us/library/ms533837(VS.85).aspx
komehon
質問者

お礼

返信遅くなり申し訳ありません. ありがとうございます. IOと比較して変換に多く時間がかかっているようです. ちょっと難しそうですが,調べてやってみようと思います.

関連するQ&A

  • VC++ 6.0 でJPEGをBMPに変換したい…

    VC++ 6.0を用いて画像処理のプログラミングをしています。 プログラムでJPEGを読み込んで、BMPに変換して画像処理をした後、JPEGもしくはBMP、どちらでも保存できるようにできればいいと思い、Webをいろいろ探してみたところ、IJGのjpeg-6bというものを見つけました。これをコンパイルして、libjpeg.libほか、多数の実行ファイルにすることができたのですが、ここからVC++ 6.0で使う方法がまったくわかりません。そもそもライブラリとは何なのか分かっていません。VC++を始めて数ヶ月ですので具体的に教えてください。また、もっといい方法があればそちらの方も教えてください。

  • JPEGとBMP

    JPEGで保存してある画像をBMP形式に変換する事というのは可能なのでしょうか? また、JPEG形式の画像を2値化するプログラムをC言語で書くことは可能なのでしょうか? JPEGとBMPの違いがよく分からないので、そのあたりも教えていただけるとありがたいです。 よろしくお願いします。

  • JPEGからBMPへの変換

    こんにちは、Makotoと申します。 JavaでJPEGからBMPへ変換を行おうと思っているのですが、 インターネットで調べてみると、JAIというSUNが出している 画像関連ライブラリの存在を知りました。早速ダウンロードしたのですが、 使用方法がいまいちよくわからずにいます。サンプルプログラムがあるような サイトを知っている人がいれば教えていただけないでしょうか?

    • ベストアンサー
    • Java
  • jpegとbmpについて

    今、JPEGの画像を使って研究をしているのですが、使いたいソフトでJPEG形式の画像は取り込めず、BMP形式の画像しか取り込むことができず、困ってます。JPEG形式の写真をBMP形式に変換すると、元の解像度など、画像の中身には何か影響が出るのでしょうか?どなたか分かる方がいたら教えてください。よろしくお願いします。

  • DXFを画像(BMP・JPEG)に変換するには?

    DXFを画像(BMP・JPEG)に変換するには? ワードで発注書などに図面を貼り付ける場合 現在、DXFをRihnoで読み込み.aiで書き出し イラストレーターで読み込みBMPで保存したものを ワードに貼り付けています。 手間がかかるので、DXFを画像(BMP・JPEG)に変換するソフトが安く手に入らないか 探しています。 どなたかご存知の方ありましたら、教えてもらえないでしょうか。 宜しくお願いします。

  • ワード内のBMPをJPEGに変換したいのですが

    40ページぐらいあるファイルなのですが、画像が大量に使われいます。 しかし画像のファイルがBMPなので、とても重い(55MB)のでまとめて全てをJPEGにしたいのですが、1個1個やっていくのは面倒なので一括変換ツールなどありますでしょうか?

  • 画像の拡張子変換について(BMP→JPEG)

    内容はタイトル通り、画像の変換についてですが、BMPからJPEGしたいのですが、 ググっても出ないので質問をします^^; 一応、語尾を変えれば出来るよ?とか、色々試したんですけど、出来なくてorz  なんて言えば良いのかなorz 見た目はJPEGに変わるけど、中身がBMPのまま~ みたいな。 それを証明するのが『JPEG』しか貼れないところに貼ろうとすると出来ない ってところです。 で、良く分からないので色々探したのですが、答はプロパティにありました。 プロパティの『ファイルの概要』で見れば分かります。(Meのみ?かも知れませんが) 元からJPEGファイルの場合、ファイルの値などがJPEGですが、 BMPの語尾変更のみのJPEGファイルの場合は、ファイルの値がBMPです。 えーと、意味が分からなくなっちゃいましたね^^; まとめて言えば、BMPをJPEGに変換するフリー(または方法)を教えてください。 Me対応の範囲のをよろしくお願いします。

  • BMP画像をJPEG画像に変換するソフト

    BMP画像をJPEG画像に変換するソフトを探しています。 出来れば、フリーウェアが良いのですが。 よろしくお願いします。

  • BMPファイルをJPEG変換について

    OSはWin8です、過去に10枚のDVDに保存したBMP画像が大量にあります。 これをできるだけ画質を落とさずJPEGその他にしてWin8のPCに保存したいのです。 最終的にしたいのは、まだ購入前ですがiPadでスライドショーにしたいのです。 DVDのBMP画像をWin8のPCに一括変換保存する方法を教えてください。 または、BMPのままでもiPadでスライドショーにできますか?

  • jpeg2000に変換したい

    VC++6 でプログラムしています。 JPGからJpeg2000に変換したいのですが DLLとかライブラリとか探しても見つかりません どうか教えてください。

専門家に質問してみよう