image_io.cpp

来自「Boost provides free peer-reviewed portab」· C++ 代码 · 共 192 行

CPP
192
字号
/*    Copyright 2005-2007 Adobe Systems Incorporated       Use, modification and distribution are subject to the Boost Software License,    Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at    http://www.boost.org/LICENSE_1_0.txt).    See http://opensource.adobe.com/gil for most recent version including documentation.*/#include <boost/mpl/vector.hpp>#include <boost/gil/typedefs.hpp>#include <boost/gil/extension/dynamic_image/any_image.hpp>#include <boost/gil/image_view.hpp>#include <boost/gil/planar_pixel_reference.hpp>#include <boost/gil/color_convert.hpp>#include <boost/gil/typedefs.hpp>#include <boost/gil/image_view_factory.hpp>#ifndef BOOST_GIL_NO_IO#include <boost/gil/extension/io/tiff_io.hpp>#include <boost/gil/extension/io/jpeg_io.hpp>#include <boost/gil/extension/io/png_io.hpp>#include <boost/gil/extension/io/tiff_dynamic_io.hpp>#include <boost/gil/extension/io/jpeg_dynamic_io.hpp>#include <boost/gil/extension/io/png_dynamic_io.hpp>#endifusing namespace boost::gil;typedef any_image<boost::mpl::vector<gray8_image_t, bgr8_image_t, argb8_image_t,                                     rgb8_image_t, rgb8_planar_image_t,                                      cmyk8_image_t, cmyk8_planar_image_t,                                      rgba8_image_t, rgba8_planar_image_t> > any_image_t;#ifdef BOOST_GIL_NO_IOvoid test_image_io() {} // IO is not tested when BOOST_GIL_NO_IO is enabled#else void test_image_io() {    const std::string in_dir="";  // directory of source images    const std::string out_dir=in_dir+"image_io-out\\";// *********************************** // ************************ GRAY IMAGE// ***********************************     gray8_image_t imgGray;// TIFF    // load gray tiff into gray image    tiff_read_image(in_dir+"gray.tif",imgGray);    // save gray image to tiff    tiff_write_view(out_dir+"grayFromGray.tif",view(imgGray));    // load RGB tiff into gray image    tiff_read_and_convert_image(in_dir+"RGB.tif",imgGray);    // save gray image to tiff (again!)    tiff_write_view(out_dir+"grayFromRGB.tif",view(imgGray));// JPEG    // load gray jpeg into gray image    jpeg_read_image(in_dir+"gray.jpg",imgGray);    // save gray image to gray jpeg    jpeg_write_view(out_dir+"grayFromGray.jpg",view(imgGray));        // load RGB jpeg into gray image    jpeg_read_and_convert_image(in_dir+"RGB.jpg",imgGray);    // save gray image to RGB jpeg    jpeg_write_view(out_dir+"grayFromRGB.jpg",color_converted_view<rgb8_pixel_t>(view(imgGray)));// PNG    // load gray png into gray image    png_read_image(in_dir+"gray.png",imgGray);    // save gray image to gray png    png_write_view(out_dir+"grayFromGray.png",view(imgGray));        // load RGB png into gray image    png_read_and_convert_image(in_dir+"RGB.png",imgGray);    // save gray image to RGB png    png_write_view(out_dir+"grayFromRGB.png",color_converted_view<rgb8_pixel_t>(view(imgGray)));// *********************************** // ************************* RGB Planar// ***********************************     rgb8_image_t imgRGB;// TIFF    // load gray tiff into RGB image    tiff_read_and_convert_image(in_dir+"gray.tif",imgRGB);    // save RGB image to tiff    tiff_write_view(out_dir+"RGBFromGray.tif",view(imgRGB));    // load RGB tiff into RGB image    tiff_read_image(in_dir+"RGB.tif",imgRGB);    // save RGB image to tiff (again!)    tiff_write_view(out_dir+"RGBFromRGB.tif",view(imgRGB));// JPEG    // load gray jpeg into RGB image    jpeg_read_and_convert_image(in_dir+"gray.jpg",imgRGB);    // save RGB image to gray jpeg    jpeg_write_view(out_dir+"RGBFromGray.jpg",view(imgRGB));        // load RGB jpeg into RGB image    jpeg_read_image(in_dir+"RGB.jpg",imgRGB);    // save RGB image to RGB jpeg    jpeg_write_view(out_dir+"RGBFromRGB.jpg",view(imgRGB));// PNG    // load gray png into RGB image    png_read_and_convert_image(in_dir+"gray.png",imgRGB);    // save RGB image to gray png    png_write_view(out_dir+"RGBFromGray.png",view(imgRGB));        // load RGB png into RGB image    png_read_image(in_dir+"RGB.png",imgRGB);    // save RGB image to RGB png    png_write_view(out_dir+"RGBFromRGB.png",view(imgRGB));// *********************************** // ************************ GRAY32 Planar// ***********************************     gray32f_image_t imgGray32;// TIFF    // load gray tiff into gray image    tiff_read_and_convert_image(in_dir+"gray.tif",imgGray32);    // save gray image to tiff    tiff_write_view(out_dir+"gray32FromGray.tif",view(imgGray32));            // load RGB tiff into gray image    tiff_read_and_convert_image(in_dir+"RGB.tif",imgGray32);    // save gray image to tiff (again!)    tiff_write_view(out_dir+"gray32FromRGB.tif",view(imgGray32));// JPEG    tiff_read_and_convert_image(in_dir+"gray.tif",imgGray32);    // again TIF (jpeg load not supported)    // save RGB image to gray jpeg    tiff_write_view(out_dir+"gray32FromGray.jpg",view(imgGray32));        // load RGB jpeg into RGB image    tiff_read_and_convert_image(in_dir+"RGB.tif",imgGray32);    // again TIF (jpeg load not supported)    // save RGB image to RGB jpeg    tiff_write_view(out_dir+"gray32FromRGB.jpg",color_converted_view<rgb32f_pixel_t>(view(imgGray32)));// *********************************** // ************************ NATIVE Planar// ***********************************     any_image_t anyImg;// TIFF    // load RGB tiff into any image    tiff_read_image(in_dir+"RGB.tif",anyImg);    // save any image to tiff    tiff_write_view(out_dir+"RGBNative.tif",view(anyImg));    // load gray tiff into any image    tiff_read_image(in_dir+"gray.tif",anyImg);        // save any image to tiff    tiff_write_view(out_dir+"grayNative.tif",view(anyImg));// JPEG    // load gray jpeg into any image    jpeg_read_image(in_dir+"gray.jpg",anyImg);    // save any image to jpeg    jpeg_write_view(out_dir+"grayNative.jpg",view(anyImg));        // load RGB jpeg into any image    jpeg_read_image(in_dir+"RGB.jpg",anyImg);    // save any image to jpeg    jpeg_write_view(out_dir+"RGBNative.jpg",view(anyImg));// PNG    // load gray png into any image    png_read_image(in_dir+"gray.png",anyImg);    // save any image to png    png_write_view(out_dir+"grayNative.png",view(anyImg));        // load RGB png into any image    png_read_image(in_dir+"RGB.png",anyImg);    // save any image to png    png_write_view(out_dir+"RGBNative.png",view(anyImg));}#endifint main(int argc, char* argv[]) {    test_image_io();    return 0;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?