diff -r e29281594440 -r 9d9b5f3a97cd src/vigra_impex/png.cxx --- a/src/vigra_impex/png.cxx Mon Nov 09 11:10:35 2009 +0100 +++ b/src/vigra_impex/png.cxx Mon Apr 12 14:52:44 2010 +0200 @@ -65,10 +65,20 @@ #include } +#define STRINGIFY(m_argument) #m_argument + #if PNG_LIBPNG_VER < 10201 #error "please update your libpng to at least 1.2.1" #endif +#if PNG_LIBPNG_VER >= 10400 +#define PNG_SET_EXPAND_GRAY_1_2_4_TO_8_NAME png_set_expand_gray_1_2_4_to_8 +#else +#define PNG_SET_EXPAND_GRAY_1_2_4_TO_8_NAME png_set_gray_1_2_4_to_8 +#endif +#define PNG_SET_EXPAND_GRAY_1_2_4_TO_8_FUNCTION_NAME STRINGIFY(PNG_SET_EXPAND_GRAY_1_2_4_TO_8_NAME) +#define PNG_SET_EXPAND_GRAY_1_2_4_TO_8(m_image) PNG_SET_EXPAND_GRAY_1_2_4_TO_8_NAME(m_image) + // TODO: per-scanline reading/writing namespace { @@ -274,8 +284,8 @@ // expand gray values to at least one byte size if ( color_type == PNG_COLOR_TYPE_GRAY && bit_depth < 8 ) { if (setjmp(png->jmpbuf)) - vigra_postcondition( false,png_error_message.insert(0, "error in png_set_gray_1_2_4_to_8(): ").c_str()); - png_set_gray_1_2_4_to_8(png); + vigra_postcondition( false, png_error_message.insert(0, "error in " PNG_SET_EXPAND_GRAY_1_2_4_TO_8_FUNCTION_NAME " (): ").c_str()); + PNG_SET_EXPAND_GRAY_1_2_4_TO_8(png); bit_depth = 8; }