質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.10%

C/C++のライブラリについて

解決済

回答 4

投稿

  • 評価
  • クリップ 0
  • VIEW 1,579

score 136

C++を勉強していて、謎な事があって質問します。
C/C++で画像を扱う場合、Windowsなら標準でJpegなどは扱える関数があると思うのですが、その他のrawなどの標準で扱えないファイルはライブラリを使うと思います。
そのライブラリなんですが、扱えないファイルを扱えるようにする事を可能にしている訳ですよね?
どういう仕組でプログラムが書かれているんですか?

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • 退会済みユーザー

    2017/06/28 22:11

    複数のユーザーから「問題・課題が含まれていない質問」という意見がありました
    teratailでは、漠然とした興味から票を募るような質問や、意見の主張をすることを目的とした投稿は推奨していません。
    「編集」ボタンから編集を行い、質問の意図や解決したい課題を明確に記述していただくと回答が得られやすくなります。

回答 4

checkベストアンサー

+3

画像ファイルといっても、その中身は他のファイル同様バイト列で、フォーマットによって何バイト目は画像のサイズ、何バイト目は圧縮方式、何バイト目以降は各ピクセルの色...といった具合に様式が定められております。画像入出力ライブラリはファイルから読み取られたバイト列をそれら様式に従って解釈しているわけです。
ですので、これといって特別なことをしているわけではありませんので、ファイルの様式に関する情報を入手すれば質問者さんご自身で画像ファイル読み込み関数や書き出し関数を作ることも可能かと思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/06/27 19:52

    「速度を上げるためにあえて独自形式」
    独自形式にすると読み込み速度が早くなるのですか?
    プログラムの書き方によって変わってくると思いますが・・・

    キャンセル

  • 2017/06/27 20:21

    あまり深く考えずに書いてしまいましたが、たとえば「この形式がこのゲームで扱うには便利だが、サイズが多少大きくなるものの、圧縮方式をこちらに変更すればより高速に展開でき、ロード時間を短縮できる」などの理由で既存の形式をベースに独自形式を作る...なんてこともあるのではないでしょうか?本職のゲームプログラマの方ならもっと実際の現場のやり方に即したお話ができるのかもしれません。申し訳ないです...

    キャンセル

  • 2017/06/27 20:31

    いえいえ、新しい知識が増えました。
    ありがとうございます。

    キャンセル

+2

JPEG ファイルの中身がどのようになっているか調べてみてはどうでしょうか?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/06/27 19:03

    JPEG ファイルの中身がどのようになっているかを知りたい訳ではなく、どのような事をしているのかと言うことが知りたく答えになっていないと思います。

    キャンセル

  • 2017/06/27 19:31

    ファイル構造がわかれば、「それを処理するプログラム」を書くだけです。

    キャンセル

  • 2017/06/28 22:08

    意図が伝わらなかったようだ。

    キャンセル

  • 2017/06/28 22:11

    意図といいますと?

    キャンセル

+2

rawなどの標準で扱えないファイルはライブラリを使うと思います。

RAW画像の形式は標準化されてないとしてもなんらかの仕様はあります。仕様がないなら実装は不可能なのですから。ライブラリーはその仕様に基づいて実装されているだけです。仕様がどうなっているかについては公開されている情報ならば探せば見つかると思います。

例えばwikiのページなどを参照すればどのような仕組みなのかの一端は伺えると思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/06/27 19:52

    なるほど、ありがとうございます。

    キャンセル

+1

こんにちは。

「標準では扱えない画像ファイル」をデコードしてビットマップ形式へ変換したり、ビットマップ形式から「標準では扱えない画像ファイル」へエンコードするプログラムを開発することは、当たり前ですが可能です。(それができなければ、そもそも「標準では扱えない画像ファイル」は何の役にも立ちません。単なる絵に書いた餅です。)

そのようなプログラムをC++から呼び出せるようにしたものが、「標準では扱えない画像ファイル」を扱えるようにするためのライブラリです。

libtifflibpng等、様々なフォーマットの様々なエンコード方式の特定の組み合わせをサボートしたライブラリがたくさんあります。
1つ使ってみると、その仕組がよく解りますよ。

私はlibtiffくらいしか使ったことありませんがlibtiffは簡単でした。もっと簡単なものもあるかも知れませんが、ビットマップ形式についての知識があれば十分候補になると思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/06/27 19:01

    ありがとうございます。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.10%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る