forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
/
qpxtool-0.7.0-libpng15.patch
125 lines (117 loc) · 4.27 KB
/
qpxtool-0.7.0-libpng15.patch
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
--- console/f1tattoo/f1tattoo.cpp
+++ console/f1tattoo/f1tattoo.cpp
@@ -96,6 +96,10 @@
int c;
int32_t r,g,b;
+ png_colorp palette;
+ int num_palette;
+ png_get_PLTE(png_ptr, info_ptr, &palette, &num_palette);
+
if (fread(header, 1, 8, fp) < 8) {
printf("Error reading PNG header\n");
fclose(fp);
@@ -129,9 +133,9 @@
png_read_info(png_ptr, info_ptr);
- printf("Image size: %ld x %ld\n", info_ptr->width, info_ptr->height);
+ printf("Image size: %ld x %ld\n", png_get_image_width(png_ptr, info_ptr), png_get_image_height(png_ptr, info_ptr));
- if (info_ptr->width != 3744U || info_ptr->height != rows ) {
+ if (png_get_image_width(png_ptr, info_ptr) != 3744U || png_get_image_height(png_ptr, info_ptr) != rows ) {
printf("Image should be 3744 x %d", rows);
return 1;
}
@@ -143,14 +147,14 @@
number_of_passes = png_set_interlace_handling(png_ptr);
png_read_update_info(png_ptr, info_ptr);
- printf("Color type: [%d] ", info_ptr->color_type);
- switch (info_ptr->color_type) {
+ printf("Color type: [%d] ", png_get_color_type(png_ptr, info_ptr));
+ switch (png_get_color_type(png_ptr, info_ptr)) {
case PNG_COLOR_TYPE_GRAY:
printf("PNG_COLOR_TYPE_GRAY\n");
break;
case PNG_COLOR_TYPE_PALETTE:
printf("PNG_COLOR_TYPE_PALETTE\n");
- if (!(info_ptr->valid & PNG_INFO_PLTE)) {
+ if (!(png_get_valid(png_ptr,info_ptr,PNG_INFO_PLTE))) {
printf("PNG color type is indexed, but no palette found!");
goto err_read_png;
}
@@ -168,49 +172,49 @@
printf("unlnown PNG color type!\n");
goto err_read_png;
}
- printf("Bit depth : %d\n", info_ptr->bit_depth);
- if (info_ptr->bit_depth != 8) {
+ printf("Bit depth : %d\n", png_get_bit_depth(png_ptr, info_ptr));
+ if (png_get_bit_depth(png_ptr, info_ptr) != 8) {
printf("Unsupported bit depth!\n");
goto err_read_png;
}
- if (info_ptr->valid & PNG_INFO_PLTE) {
- printf("Palette : %d colors\n", info_ptr->num_palette);
+ if (png_get_valid(png_ptr,info_ptr,PNG_INFO_PLTE)) {
+ printf("Palette : %d colors\n", num_palette);
} else {
printf("Palette : NO\n");
}
- printf("ROW bytes : %ld\n", info_ptr->rowbytes);
+ printf("ROW bytes : %ld\n", png_get_rowbytes(png_ptr, info_ptr));
raw_row_pointer = buf;
- png_row_pointer = (png_byte*) malloc(info_ptr->rowbytes);
+ png_row_pointer = (png_byte*) malloc(png_get_rowbytes(png_ptr, info_ptr));
for (row=0; row<rows; row++) {
if (setjmp(png_jmpbuf(png_ptr))) {
printf("png_jmpbuf failed!\n");
goto err_read_png;
}
png_read_row(png_ptr, png_row_pointer, NULL);
- if (info_ptr->width < 3744U)
+ if (png_get_image_width(png_ptr, info_ptr) < 3744U)
memset(raw_row_pointer, 0, 3744);
- switch (info_ptr->color_type) {
+ switch (png_get_color_type(png_ptr, info_ptr)) {
case PNG_COLOR_TYPE_GRAY:
- for (col=0; col<info_ptr->width; col++) {
+ for (col=0; col<png_get_image_width(png_ptr, info_ptr); col++) {
raw_row_pointer[col] = png_row_pointer[col] ^ 0xFF;
// memcpy(raw_row_pointer, png_row_pointer, 3744);
}
break;
case PNG_COLOR_TYPE_PALETTE:
- for (col=0; col<info_ptr->width; col++) {
+ for (col=0; col<png_get_image_width(png_ptr, info_ptr); col++) {
c = png_row_pointer[col];
- r = info_ptr->palette[c].red;
- g = info_ptr->palette[c].green;
- b = info_ptr->palette[c].blue;
+ r = palette[c].red;
+ g = palette[c].green;
+ b = palette[c].blue;
c = (r*11 + g*16 + b*5) / 32;
raw_row_pointer[col] = c ^ 0xFF;
}
break;
case PNG_COLOR_TYPE_RGB:
- for (col=0; col<info_ptr->width; col++) {
+ for (col=0; col<png_get_image_width(png_ptr, info_ptr); col++) {
r = png_row_pointer[col*3];
g = png_row_pointer[col*3+1];
b = png_row_pointer[col*3+2];
@@ -219,7 +223,7 @@
}
break;
case PNG_COLOR_TYPE_RGB_ALPHA:
- for (col=0; col<info_ptr->width; col++) {
+ for (col=0; col<png_get_image_width(png_ptr, info_ptr); col++) {
r = png_row_pointer[col*4];
g = png_row_pointer[col*4+1];
b = png_row_pointer[col*4+2];
@@ -228,7 +232,7 @@
}
break;
case PNG_COLOR_TYPE_GRAY_ALPHA:
- for (col=0; col<info_ptr->width; col++) {
+ for (col=0; col<png_get_image_width(png_ptr, info_ptr); col++) {
raw_row_pointer[col] = png_row_pointer[col*2] ^ 0xFF;
}
break;