#pragma once


#include "C_P1ImageCommonTypes.h"
#include "P1ImageRawImage.hpp"

namespace P1
{
	namespace ImageSdk
	{
		/**
		 * @brief Writes a JPEG 2000 file to the disk synchronously
		 *
		 * @param filename The path to the output file, it may be a single character or wide character string.
		 * @param bitmap The rendered bitmap
		 * @param image The raw image's in memory representation
		 * @param config Describes the JPEG 2000 metadata/preview
		 * @throw SDKException The function will throw an exception in case of failure.
		 */

		class EXPORT_API Jp2Writer
		{
		public:
			Jp2Writer(std::string filename, P1::ImageSdk::BitmapImage& bitmap, P1::ImageSdk::RawImage& image, Jp2Config& config)  noexcept(false);
		};
	} // Image SDK
} // P1