• ベストアンサー

画像フォーマットの読み書き

設計の段階で迷っています。知恵をお貸し下さい。 グラフィック系のソフトを開発しようと思います。 そのときにJPEGをはじめ多くのフォーマットの読み書きを検討しています。 当初はSUSIEを検討しておりましたが、こちらは出力プラグインがないことや プラグインの数が多いことなどから諦める方向です。 とりあえずWEBを検索してみて次の3つの方法があるのではと推測しました。 1 OpenGLを使う 2 DirectXを使う 3 JpegLibなどオープンソースのライブラリを使う しかし、これらの方法で本当に実現可能かどうかが分からないのです。 はたまた可能として、どれを使用すればベストなのかも予想がつかないのです。 一番確実なのは3番だと思いますが、 この場合は1つのフォーマットにつき1つのライブラリとなるので 多数のフォーマットに対応できるのか、 そしてSUSIE同様多くのプラグインが必要になるかどうかが焦点になります。 よろしくお願いします。

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

  • ベストアンサー
  • sha-girl
  • ベストアンサー率52% (430/816)
回答No.4

>フォーマットごとにソースを用意する必要があるのではと思ったので、 コードが増えることに何か問題があるのでしょうか。 別にコードをそのままプロジェクトにいれなくても libpng等はVC++でdllを作るプロジェクトファイルがあるので それをVB側から呼び出せばいいでしょう。 どちらにしても全てのフォーマットへの対応を 全て自分で書くのはしんどいので 手直しするといっても 他人の力(オープンソース)は必要でしょう。 dll化してVBから呼び出すって感じでしょう。 というかsusieのプラグインも単なるDLLのようです。 http://www.asahi-net.or.jp/~kh4s-smz/spi/make_spi.html http://www2f.biglobe.ne.jp/~kana/develop.html http://www2f.biglobe.ne.jp/~kana/howtospi/spi_wrapper.txt susieのプラグインは 読み込み機能はあっても書き出しは無いようですね。

hawkwind
質問者

お礼

たびたびのご指摘ありがとうございます。 >コードが増えることに何か問題があるのでしょうか。 コードが増えると管理項目、テスト項目も増えるので大問題です。 >全てのフォーマットへの対応を全て自分で書くのはしんどいので >手直しするといっても他人の力(オープンソース)は必要でしょう そうですね。前にbmpやAVIの構造を分析したときでさえ結構時間がかかりました。 JPEGなどはそれに比べはるかにややこしいですから とても全部を自分で何とかする気になりません^^; どうもこの手の部品はありそうでいてないようで、 なかなか思わしいものが見つかりませんでした。 オープンソースについては早くから見つけていたのですが、 日本語の資料が少ないことと、他に出来合いの何かが見つかればと思ってここで質問しました。 ここで皆さんのお知恵を拝借しまして オープンソースを利用するということで調整していきたいと思います。 どうも有り難うございました。

その他の回答 (3)

  • bulgaris
  • ベストアンサー率50% (8/16)
回答No.3

OpenGLについて回答すると、 OpenGLはJPEGとかPNGとかの画像ファイルを読み書きするような 高級機能は提供していません。 アプリケーション側で実装してね。というスタンスです。

hawkwind
質問者

お礼

情報提供ありがとうございます。 こちらで用意する必要がありますか・・・ なら、却下ですね。。。 選択肢が1つずつ狭まりました。

  • xcrOSgS2wY
  • ベストアンサー率50% (1006/1985)
回答No.2

市販のライブラリを使用してみては。 LEADTOOLS 14.0J Raster Imaging Pro http://www.grapecity.com/Japan/support/database/P1_287.htm LEADTOOLS Raster Imaging SDK http://www.leadtools.com/SDK/Raster/Raster-Imaging.htm およそ考えられる限りのラスター画像フォーマットに対応しています。

hawkwind
質問者

お礼

お返事ありがとうございます。 leadtoolsも調査はしましたがこちらは非常に高級でして ライセンス価格と機能の生産性が折り合わずに見送りました。 情報のご提供ありがとうございます。

  • sha-girl
  • ベストアンサー率52% (430/816)
回答No.1

どういうソフトをどういう環境で作るのかがわかりませんが オープンソースのライブラリを使えば確実だと思います。 ちなみにDirectXの利用といいますが DirectXでJPEGでテクスチャの読み込み等には対応していますが それは画像を扱う為では無いと思います。 (DirectXの機能で書き出しはできたかな・・・) あとGIF等は対応してないですし。 >この場合は1つのフォーマットにつき1つのライブラリとなるので >多数のフォーマットに対応できるのか、 >そしてSUSIE同様多くのプラグインが必要になるかどうかが焦点になります。 hawkwindさんはどうやって実現しようとしているのでしょうか? プログラミングのカテゴリーですしプログラムするのですよね? オープンソースのライブラリはその名の通りソースで配布されているので 複数のソースをまとめてコンパイルすればなんら問題はありません。 当然言語はC/C++になります。(普通オープンソースのソースはCですから) あと「プラグインが必要になるかどうか」というのが、意味がよくわかりません。 基本的に自分でソースを埋め込むのならプラグインは必要ないですし、 拡張性を持たせる為プラグインに対応させるということは可能です。 SUSIEについてはよく知りません。

hawkwind
質問者

お礼

お返事ありがとうございます。 今回は既存のプログラムの手直しということで検討しております。 既にフォームや機能の大部分はVB6.0で作成しておりますが、 今まではBMPの読み書きとJPEGの読み込みだけに対応しておりました。 ということなのでVB、およびVCということで考えています。 調査に先立ちVix、irfanview等の色々なフリーウェアをみてみましたが、 Susieなどのプラグインタイプかオープンソースを使用しているものが殆どでした。 ただ、webの検索の最中に1件だけOpenGLを使った画像ビューワがありました。 しかし、単なる記事だったのでOpenGLの場合はことの真偽を確かめようと思いました。 また、OpenGLと対極にあるDirectXでは可能かなと思った次第です。 更にオープンソースを使った場合は フォーマットごとにソースを用意する必要があるのではと思ったので、 コードが増えそうで利用するのに悩んだ次第です。

関連するQ&A