質問: C++を勉強していて、謎な事があって質問します。 C/C++で画像を扱う場合、Windowsなら標準でJpegなどは扱える関数があると思うのですが、その他のrawなどの標準で扱えないファイルはライブラリを使うと思います。 そのライブラリなんですが、扱えないファイルを扱えるようにする事を可能にしている訳ですよね? どういう仕組でプログラムが書かれているんですか?
回答: 画像ファイルといっても、その中身は他のファイル同様バイト列で、フォーマットによって何バイト目は画像のサイズ、何バイト目は圧縮方式、何バイト目以降は各ピクセルの色...といった具合に様式が定められております。画像入出力ライブラリはファイルから読み取られたバイト列をそれら様式に従って解釈しているわけです。 ですので、これといって特別なことをしているわけではありませんので、ファイルの様式に関する情報を入手すれば質問者さんご自身で画像ファイル読み込み関数や書き出し関数を作ることも可能かと思います。