Skip to content

Commit fc2e3fd

Browse files
committed
Tests/LibGfx: Add JBIG2 tests for intermediate halftone and text regions
1 parent 217364b commit fc2e3fd

File tree

5 files changed

+269
-4
lines changed

5 files changed

+269
-4
lines changed

Tests/LibGfx/TestImageDecoder.cpp

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -375,6 +375,7 @@ TEST_CASE(test_jbig2_decode)
375375
TEST_INPUT("jbig2/bitmap-refine-template1.jbig2"sv),
376376
TEST_INPUT("jbig2/bitmap-refine-template1-tpgron.jbig2"sv),
377377
TEST_INPUT("jbig2/bitmap-halftone.jbig2"sv),
378+
TEST_INPUT("jbig2/bitmap-halftone-refine.jbig2"sv),
378379
TEST_INPUT("jbig2/bitmap-halftone-template1.jbig2"sv),
379380
TEST_INPUT("jbig2/bitmap-halftone-template2.jbig2"sv),
380381
TEST_INPUT("jbig2/bitmap-halftone-template3.jbig2"sv),
@@ -383,6 +384,7 @@ TEST_CASE(test_jbig2_decode)
383384
TEST_INPUT("jbig2/bitmap-symbol.jbig2"sv),
384385
TEST_INPUT("jbig2/bitmap-symbol-manyrefs.jbig2"sv),
385386
TEST_INPUT("jbig2/bitmap-symbol-negative-sbdsoffset.jbig2"sv),
387+
TEST_INPUT("jbig2/bitmap-symbol-refine.jbig2"sv),
386388
TEST_INPUT("jbig2/bitmap-symbol-symhuff-texthuff.jbig2"sv),
387389
TEST_INPUT("jbig2/bitmap-symbol-symhuffB5B3-texthuffB7B9B12.jbig2"sv),
388390
TEST_INPUT("jbig2/bitmap-symbol-symhuff-texthuffB10B13.jbig2"sv),
@@ -415,11 +417,7 @@ TEST_CASE(test_jbig2_decode)
415417
// - lossless halftone (code support added in #26043)
416418
// - rotated halftone (code support added in #26044)
417419
// - composition test for halftone regions
418-
// - intermediate halftone / refinement of halftone regions
419420
// - negative position in composition (code support added in #26046)
420-
// - intermediate text regions (code support added in #26197)
421-
// - intermediate halftone regions (code support added in #26197)
422-
// - intermediate direct regions (code support added in #26197)
423421
// - symbol refinement referring to symbol in same segment
424422
// Missing tests for things that aren't implemented yet:
425423
// - exttemplate
685 Bytes
Binary file not shown.
472 Bytes
Binary file not shown.
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
{
2+
"global_header": {
3+
"organization": "sequential",
4+
"number_of_pages": 1
5+
},
6+
"segments": [
7+
{
8+
"segment_number": 0,
9+
"type": "page_information",
10+
"page_association": 1,
11+
"data": {
12+
"page_width": 399,
13+
"page_height": 400,
14+
"flags": {
15+
"is_eventually_lossless": true
16+
}
17+
}
18+
},
19+
{
20+
"segment_number": 1,
21+
"type": "pattern_dictionary",
22+
"page_association": 1,
23+
"retained": true,
24+
"data": {
25+
"pattern_width": 16,
26+
"pattern_height": 16,
27+
"gray_max": "from_tiles",
28+
"method": "unique_image_tiles",
29+
"image_data": {
30+
"from_file": "bitmap-blemish.bmp"
31+
}
32+
}
33+
},
34+
{
35+
"segment_number": 2,
36+
"type": "intermediate_halftone_region",
37+
"page_association": 1,
38+
"retained": true,
39+
"referred_to_segments": [
40+
{
41+
"segment_number": 1,
42+
"retained": false
43+
}
44+
],
45+
"data": {
46+
"region_segment_information": {
47+
"width": 399,
48+
"height": 400
49+
},
50+
"grayscale_width": 25,
51+
"grayscale_height": 25,
52+
"grid_offset_x_times_256": 0,
53+
"grid_offset_y_times_256": 0,
54+
"grid_vector_x_times_256": 4096,
55+
"grid_vector_y_times_256": 0,
56+
"graymap_data": {
57+
"match_image": "bitmap-blemish.bmp"
58+
}
59+
}
60+
},
61+
{
62+
"segment_number": 3,
63+
"type": "generic_refinement_region",
64+
"page_association": 1,
65+
"referred_to_segments": [
66+
{
67+
"segment_number": 2,
68+
"retained": false
69+
}
70+
],
71+
"data": {
72+
"image_data": {
73+
"from_file": "bitmap.bmp"
74+
}
75+
}
76+
},
77+
{
78+
"segment_number": 4,
79+
"type": "end_of_page",
80+
"page_association": 1
81+
}
82+
]
83+
}
Lines changed: 184 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,184 @@
1+
{
2+
"global_header": {
3+
"organization": "sequential",
4+
"number_of_pages": 1
5+
},
6+
"segments": [
7+
{
8+
"segment_number": 0,
9+
"type": "page_information",
10+
"page_association": 1,
11+
"data": {
12+
"page_width": 399,
13+
"page_height": 400,
14+
"flags": {
15+
"is_eventually_lossless": true
16+
}
17+
}
18+
},
19+
20+
{
21+
"segment_number": 1,
22+
"type": "symbol_dictionary",
23+
"page_association": 1,
24+
"retained": true,
25+
"data": {
26+
"height_classes": [
27+
{
28+
"symbols": [
29+
{
30+
"image_data": {
31+
"from_file": "bitmap.bmp",
32+
"crop": {
33+
"x": 50,
34+
"y": 108,
35+
"width": 30,
36+
"height": 30
37+
}
38+
}
39+
}
40+
]
41+
},
42+
{
43+
"symbols": [
44+
{
45+
"image_data": {
46+
"from_file": "bitmap-blemish.bmp",
47+
"crop": {
48+
"x": 60,
49+
"y": 265,
50+
"width": 40,
51+
"height": 75
52+
}
53+
}
54+
}
55+
]
56+
},
57+
{
58+
"symbols": [
59+
{
60+
"image_data": {
61+
"from_file": "bitmap.bmp",
62+
"crop": {
63+
"x": 135,
64+
"y": 100,
65+
"width": 100,
66+
"height": 100
67+
}
68+
}
69+
}
70+
]
71+
},
72+
{
73+
"symbols": [
74+
{
75+
"image_data": {
76+
"from_file": "bitmap.bmp",
77+
"crop": {
78+
"x": 232,
79+
"y": 70,
80+
"width": 120,
81+
"height": 250
82+
}
83+
}
84+
}
85+
]
86+
}
87+
]
88+
}
89+
},
90+
91+
{
92+
"segment_number": 2,
93+
"type": "intermediate_text_region",
94+
"page_association": 1,
95+
"retained": true,
96+
"referred_to_segments": [
97+
{
98+
"segment_number": 1,
99+
"retained": false
100+
}
101+
],
102+
"data": {
103+
"region_segment_information": {
104+
"width": 399,
105+
"height": 400
106+
},
107+
"flags": {
108+
"uses_huffman_encoding": false,
109+
"uses_refinement_coding": true,
110+
"strip_size": 2,
111+
"reference_corner": "top_left",
112+
"refinement_template": 0
113+
},
114+
115+
"initial_strip_t": -4,
116+
"strips": [
117+
{
118+
"strip_t": 70,
119+
"instances": [
120+
{
121+
"instance_s": 232,
122+
"instance_t": 70,
123+
"symbol_id": 3
124+
}
125+
]
126+
},
127+
{
128+
"strip_t": 100,
129+
"instances": [
130+
{
131+
"instance_s": 135,
132+
"instance_t": 100,
133+
"symbol_id": 2
134+
}
135+
]
136+
},
137+
{
138+
"strip_t": 108,
139+
"instances": [
140+
{
141+
"instance_s": 50,
142+
"instance_t": 108,
143+
"symbol_id": 0
144+
}
145+
]
146+
},
147+
{
148+
"strip_t": 264,
149+
"instances": [
150+
{
151+
"instance_s": 60,
152+
"instance_t": 265,
153+
"symbol_id": 1
154+
}
155+
]
156+
}
157+
]
158+
}
159+
},
160+
161+
{
162+
"segment_number": 3,
163+
"type": "generic_refinement_region",
164+
"page_association": 1,
165+
"referred_to_segments": [
166+
{
167+
"segment_number": 2,
168+
"retained": false
169+
}
170+
],
171+
"data": {
172+
"image_data": {
173+
"from_file": "bitmap.bmp"
174+
}
175+
}
176+
},
177+
178+
{
179+
"segment_number": 4,
180+
"type": "end_of_page",
181+
"page_association": 1
182+
}
183+
]
184+
}

0 commit comments

Comments
 (0)