閉じる

jpeg_write_viewを stdoutへ出力

標準の jpeg_write_viewってファイル名を指定しての出力しか無く、cgi等で直接標準出力へ出力したいときに困る。
で、jpeg_write_view(const char* filename,…)と jpeg_write_view(const std::string& filename,…)の実装を見てみると、ファイル名から detail::jpeg_writerのインスタンスを作成してビューを渡しているだけな事がわかる。
そこで detail::jpeg_writerの実装を見てみると…なんだ、FILEを受け取るコンストラクタあるじゃん。
んなわけで、以下のようなテンプレートを定義してやるだけで事は済んだ。

5101.h
namespace boost {
namespace gil {
template <typename View>
inline void jpeg_write_view(FILE *ostream, const View& view, int quality = 100) {
BOOST_STATIC_ASSERT(jpeg_write_support<View>::is_supported);

detail::jpeg_writer m(ostream);
m.apply(view, quality);
}
}
} // namespace boost::gil

コメントを残す

メールアドレスが公開されることはありません。必須項目には印がついています *

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)