mirror of
https://github.com/zint/zint
synced 2024-11-16 20:57:25 +13:00
Ultra: Extend colour support to PNG PCX BMP and TIF
Implementation needs improvement, but colour output is now achieved in most formats
This commit is contained in:
@ -123,24 +123,69 @@ int pcx_pixel_plot(struct zint_symbol *symbol, char *pixelbuf) {
|
||||
for (column = 0; column < symbol->bitmap_width; column++) {
|
||||
switch (colour) {
|
||||
case 0:
|
||||
if (pixelbuf[(row * symbol->bitmap_width) + column] == '1') {
|
||||
rle_row[column] = fgred;
|
||||
} else {
|
||||
rle_row[column] = bgred;
|
||||
switch(pixelbuf[(row * symbol->bitmap_width) + column]) {
|
||||
case 'W': // White
|
||||
case 'M': // Magenta
|
||||
case 'R': // Red
|
||||
case 'Y': // Yellow
|
||||
rle_row[column] = 255;
|
||||
break;
|
||||
case 'C': // Cyan
|
||||
case 'B': // Blue
|
||||
case 'G': // Green
|
||||
case 'K': // Black
|
||||
rle_row[column] = 0;
|
||||
break;
|
||||
case '1':
|
||||
rle_row[column] = fgred;
|
||||
break;
|
||||
default:
|
||||
rle_row[column] = bgred;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (pixelbuf[(row * symbol->bitmap_width) + column] == '1') {
|
||||
rle_row[column] = fggrn;
|
||||
} else {
|
||||
rle_row[column] = bggrn;
|
||||
switch(pixelbuf[(row * symbol->bitmap_width) + column]) {
|
||||
case 'W': // White
|
||||
case 'C': // Cyan
|
||||
case 'Y': // Yellow
|
||||
case 'G': // Green
|
||||
rle_row[column] = 255;
|
||||
break;
|
||||
case 'B': // Blue
|
||||
case 'M': // Magenta
|
||||
case 'R': // Red
|
||||
case 'K': // Black
|
||||
rle_row[column] = 0;
|
||||
break;
|
||||
case '1':
|
||||
rle_row[column] = fggrn;
|
||||
break;
|
||||
default:
|
||||
rle_row[column] = bggrn;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (pixelbuf[(row * symbol->bitmap_width) + column] == '1') {
|
||||
rle_row[column] = fgblu;
|
||||
} else {
|
||||
rle_row[column] = bgblu;
|
||||
switch(pixelbuf[(row * symbol->bitmap_width) + column]) {
|
||||
case 'W': // White
|
||||
case 'C': // Cyan
|
||||
case 'B': // Blue
|
||||
case 'M': // Magenta
|
||||
rle_row[column] = 255;
|
||||
break;
|
||||
case 'R': // Red
|
||||
case 'Y': // Yellow
|
||||
case 'G': // Green
|
||||
case 'K': // Black
|
||||
rle_row[column] = 0;
|
||||
break;
|
||||
case '1':
|
||||
rle_row[column] = fgblu;
|
||||
break;
|
||||
default:
|
||||
rle_row[column] = bgblu;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
Reference in New Issue
Block a user