mirror of
https://github.com/boostorg/gil.git
synced 2026-01-28 07:12:14 +00:00
192 lines
6.5 KiB
C++
192 lines
6.5 KiB
C++
/*
|
|
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>
|
|
#endif
|
|
|
|
using 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_IO
|
|
void 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));
|
|
}
|
|
#endif
|
|
|
|
int main(int argc, char* argv[]) {
|
|
test_image_io();
|
|
return 0;
|
|
}
|
|
|