Так получилось, что Boost.GIL "as is" не готов к полноценному использованию, туторы из Boost просто так не собираются. Для комфортной работы нужно немного поработать напильником. Если это вдруг кому-то облегчит жизнь, то вот инструкция по его сборке: 1. Ставим Boost. 2. Качаем отсюда libjpeg и собираем. 3. Качаем отсюда numeric, распаковываем файлы и складываем их в boost/gil/extension/numeric. 4. Для более комфортной работы нужно научить GIL работать через iostreams. Для этого идем в Boost Vault и качаем gil_iostream.zip. Файлы из архива переписываем поверх в boost/gil/extension/io. Эта функциональность пока что не принята в официальный Boost, но будем надеяться, что это случится в ближайшее время. 5. В проекте, который юзает GIL, прописываем путь к libjpeg в Additional Include Directories. Теперь можно работать: Код (Text): #include <fstream> #include <boost/gil/image.hpp> #include <boost/gil/typedefs.hpp> #include <boost/gil/extension/io/jpeg_io.hpp> #include <boost/gil/extension/numeric/sampler.hpp> #include <boost/gil/extension/numeric/resample.hpp> int main() { boost::gil::rgb8_image_t img; boost::gil::jpeg_read_image("src.jpg", img); // Здесь вместо имени файла можно дать std::istream& boost::gil::rgb8_image_t rescaled(100, 100); boost::gil::resize_view(boost::gil::const_view(img), boost::gil::view(rescaled), boost::gil::bilinear_sampler()); boost::gil::jpeg_write_view("dst.jpg", boost::gil::const_view(rescaled)); // Здесь вместо имени файла можно дать std::ostream& return 0; }
Насчет iostreams я поторопился - эта функциональность еще слишком сырая и на данный момент к использованию не готова :-(