mirror of
https://github.com/zint/zint
synced 2024-11-16 20:57:25 +13:00
Reduce size of Code 49 bit pattern table (no change of functionality)
This commit is contained in:
parent
17be0440cc
commit
c0e95684a9
@ -47,7 +47,7 @@ int code_49(struct zint_symbol *symbol, unsigned char source[], const int length
|
|||||||
int c_grid[8][8]; /* Refers to table 3 */
|
int c_grid[8][8]; /* Refers to table 3 */
|
||||||
int w_grid[8][4]; /* Refets to table 2 */
|
int w_grid[8][4]; /* Refets to table 2 */
|
||||||
int pad_count = 0;
|
int pad_count = 0;
|
||||||
char pattern[40];
|
char pattern[80];
|
||||||
int gs1;
|
int gs1;
|
||||||
size_t h;
|
size_t h;
|
||||||
|
|
||||||
@ -306,28 +306,35 @@ int code_49(struct zint_symbol *symbol, unsigned char source[], const int length
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < rows; i++) {
|
for (i = 0; i < rows; i++) {
|
||||||
strcpy(pattern, "11"); /* Start character */
|
strcpy(pattern, "10"); /* Start character */
|
||||||
for (j = 0; j < 4; j++) {
|
for (j = 0; j < 4; j++) {
|
||||||
if (i != (rows - 1)) {
|
if (i != (rows - 1)) {
|
||||||
if (c49_table4[i][j] == 'E') {
|
if (c49_table4[i][j] == 'E') {
|
||||||
/* Even Parity */
|
/* Even Parity */
|
||||||
strcat(pattern, c49_appxe_even[w_grid[i][j]]);
|
bin_append(c49_even_bitpattern[w_grid[i][j]], 16, pattern);
|
||||||
} else {
|
} else {
|
||||||
/* Odd Parity */
|
/* Odd Parity */
|
||||||
strcat(pattern, c49_appxe_odd[w_grid[i][j]]);
|
bin_append(c49_odd_bitpattern[w_grid[i][j]], 16, pattern);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
/* Last row uses all even parity */
|
/* Last row uses all even parity */
|
||||||
strcat(pattern, c49_appxe_even[w_grid[i][j]]);
|
bin_append(c49_even_bitpattern[w_grid[i][j]], 16, pattern);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
strcat(pattern, "4"); /* Stop character */
|
strcat(pattern, "1111"); /* Stop character */
|
||||||
|
|
||||||
/* Expand into symbol */
|
/* Expand into symbol */
|
||||||
symbol->row_height[i] = 10;
|
symbol->row_height[i] = 10;
|
||||||
expand(symbol, pattern);
|
|
||||||
|
for (j = 0; j < strlen(pattern); j++) {
|
||||||
|
if (pattern[j] == '1') {
|
||||||
|
set_module(symbol, i, j);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
symbol->rows = rows;
|
||||||
|
symbol->width = strlen(pattern);
|
||||||
symbol->whitespace_width = 10;
|
symbol->whitespace_width = 10;
|
||||||
if (!(symbol->output_options & BARCODE_BIND)) {
|
if (!(symbol->output_options & BARCODE_BIND)) {
|
||||||
symbol->output_options += BARCODE_BIND;
|
symbol->output_options += BARCODE_BIND;
|
||||||
|
1596
backend/code49.h
1596
backend/code49.h
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user