Blob Blame Raw
#ifndef igs_rotate_blur_h
#define igs_rotate_blur_h

#ifndef IGS_ROTATE_BLUR_EXPORT
#define IGS_ROTATE_BLUR_EXPORT
#endif

namespace igs
{
namespace rotate_blur
{
IGS_ROTATE_BLUR_EXPORT void convert(
	const unsigned char *in, const int margin /* 参照画像(in)がもつ余白 */

	,
	const unsigned char *ref /* outと同じ高さ、幅、チャンネル数 */
	,
	const int ref_bits, const int ref_mode // R,G,B,A,luminance

	,
	unsigned char *out

	,
	const int height /* 求める画像(out)の高さ */
	,
	const int width /* 求める画像(out)の幅 */
	,
	const int channels, const int bits

	,
	const double cx, const double cy, const double degree = 30.0 /* ぼかしの回転角度 */
	,
	const double blur_radius = 0.0 /* ぼかしの始まる半径 */
	,
	const double spin_radius = 0.0 /* ゼロ以上でspin指定となり、
				かつぼかし強弱の一定になる半径となる */
	,
	const int sub_div = 4 /* 1ならJaggy、2以上はAntialias */
	,
	const bool alpha_rendering_sw = true);
#if 0  //------------------- comment out start ------------------------
  IGS_ROTATE_BLUR_EXPORT int enlarge_margin(
	 const int height	/* 求める画像(out)の高さ */
	,const int width	/* 求める画像(out)の幅 */
	,const double xc
	,const double yc
	,const double degree	/* ぼかしの回転角度 */
	,const double blur_radius	/* ぼかしの始まる半径 */
	,const double spin_radius	/* ゼロ以上でspin指定となり、
				かつぼかし強弱の一定になる半径となる */
	,const int sub_div	/* 1ならJaggy、2以上はAntialias */
  );
#endif //------------------- comment out end -------------------------
IGS_ROTATE_BLUR_EXPORT int reference_margin(
	const int height /* 求める画像(out)の高さ */
	,
	const int width /* 求める画像(out)の幅 */
	,
	const double xc, const double yc, const double degree /* ぼかしの回転角度 */
	,
	const double blur_radius /* ぼかしの始まる半径 */
	,
	const double spin_radius /* ゼロ以上でspin指定となり、
				かつぼかし強弱の一定になる半径となる */
	,
	const int sub_div /* 1ならJaggy、2以上はAntialias */
	);
}
}

#endif /* !igs_rotate_blur_h */