Boost.GILによるpng生成
libpngってC++ friendlyじゃないよね、って呟いていたら、id:faith_and_braveさんに「そこでBoost.GILですよ」と言われたので、作ってみた。
#include <utility> #include <boost/gil/gil_all.hpp> #include <boost/gil/extension/io/png_io.hpp> int main() { namespace gil = boost::gil; gil::point2<ptrdiff_t> dim(400, 400); gil::gray8_image_t img(dim); auto view = gil::view(img); for (ptrdiff_t i = 0; i < dim.y; ++i) { for (ptrdiff_t j = 0; j < dim.x; ++j) { view(i, j) = 255 * (std::min(i, j) / static_cast<double>(dim.x)); } } gil::png_write_view("img.png", view); return 0; }
IO時にlibpngを読んでいるので、
$ g++-4.5 -std=c++0x -o gil gil.cpp -W -Wall -O3 -lpng
のようにlibpngをリンクしないとコンパイルできません。