blob: aa300795041b5261013546956aecc13701e63fd7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
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 <png.h>
}
+#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;
}
|