forked from hkc/cc-stuff
Minor changes, unfinished palette selection
This commit is contained in:
parent
a665f9498d
commit
33e3c1ad8c
33
img2cpi.c
33
img2cpi.c
|
@ -202,8 +202,16 @@ int main(int argc, char **argv) {
|
||||||
return EXIT_FAILURE;
|
return EXIT_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: load palette
|
// TODO: load palette, maybe calculate it too? k-means?
|
||||||
|
const union color *palette = DEFAULT_PALETTE;
|
||||||
|
switch (args.palette_type) {
|
||||||
|
case PALETTE_DEFAULT: palette = DEFAULT_PALETTE; break;
|
||||||
|
case PALETTE_DEFAULT_GRAY: palette = DEFAULT_GRAY_PALETTE; break;
|
||||||
|
case PALETTE_AUTO: assert(0 && "Not implemented"); break;
|
||||||
|
case PALETTE_LIST: assert(0 && "Not implemented"); break;
|
||||||
|
case PALETTE_PATH: assert(0 && "Not implemented"); break;
|
||||||
|
default: assert(0 && "Unreachable");
|
||||||
|
}
|
||||||
|
|
||||||
// TODO: properly scale
|
// TODO: properly scale
|
||||||
struct image *scaled_image;
|
struct image *scaled_image;
|
||||||
|
@ -226,8 +234,6 @@ int main(int argc, char **argv) {
|
||||||
|
|
||||||
|
|
||||||
// TODO: actually do stuff
|
// TODO: actually do stuff
|
||||||
|
|
||||||
const union color *palette = DEFAULT_PALETTE;
|
|
||||||
struct cc_char *characters = calloc(args.width * args.height, sizeof(struct cc_char));
|
struct cc_char *characters = calloc(args.width * args.height, sizeof(struct cc_char));
|
||||||
|
|
||||||
struct image_pal *quantized_image = image_quantize(canvas, palette, 16);
|
struct image_pal *quantized_image = image_quantize(canvas, palette, 16);
|
||||||
|
@ -243,11 +249,14 @@ int main(int argc, char **argv) {
|
||||||
|
|
||||||
if (args.fast_mode) {
|
if (args.fast_mode) {
|
||||||
// use old 2x3
|
// use old 2x3
|
||||||
|
for (int y = 0; y < args.height; y++) {
|
||||||
|
for (int x = 0; x < args.width; x++) {
|
||||||
|
}
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
// use new 8x11 character matching
|
// use new 8x11 character matching
|
||||||
for (int y = 0; y < args.height; y++) {
|
for (int y = 0; y < args.height; y++) {
|
||||||
for (int x = 0; x < args.width; x++) {
|
for (int x = 0; x < args.width; x++) {
|
||||||
printf("DBG: %d:%d\n", x, y);
|
|
||||||
// Oh boy...
|
// Oh boy...
|
||||||
int min_diff = 0xffffff;
|
int min_diff = 0xffffff;
|
||||||
char closest_sym = 0x00, closest_color = 0xae;
|
char closest_sym = 0x00, closest_color = 0xae;
|
||||||
|
@ -325,23 +334,23 @@ bool parse_cmdline(int argc, char **argv) {
|
||||||
if (c == '?') break;
|
if (c == '?') break;
|
||||||
|
|
||||||
switch (c) {
|
switch (c) {
|
||||||
case 'h':
|
case 'h': // --help
|
||||||
show_help(argv[0], true, stdout);
|
show_help(argv[0], true, stdout);
|
||||||
exit(EXIT_SUCCESS);
|
exit(EXIT_SUCCESS);
|
||||||
break;
|
break;
|
||||||
case 'f':
|
case 'f': // --fast
|
||||||
args.fast_mode = true;
|
args.fast_mode = true;
|
||||||
if (args.cpi_version != CPI_VERSION_AUTO) {
|
if (args.cpi_version != CPI_VERSION_AUTO) {
|
||||||
fprintf(stderr, "Warning: text mode ignores version\n");
|
fprintf(stderr, "Warning: text mode ignores version\n");
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'W':
|
case 'W': // --width
|
||||||
args.width = atoi(optarg);
|
args.width = atoi(optarg);
|
||||||
break;
|
break;
|
||||||
case 'H':
|
case 'H': // --height
|
||||||
args.height = atoi(optarg);
|
args.height = atoi(optarg);
|
||||||
break;
|
break;
|
||||||
case 'V':
|
case 'V': // --cpi_version
|
||||||
{
|
{
|
||||||
if (0 == strcmp(optarg, "auto") || 0 == strcmp(optarg, "-1")) {
|
if (0 == strcmp(optarg, "auto") || 0 == strcmp(optarg, "-1")) {
|
||||||
args.cpi_version = CPI_VERSION_AUTO;
|
args.cpi_version = CPI_VERSION_AUTO;
|
||||||
|
@ -356,7 +365,7 @@ bool parse_cmdline(int argc, char **argv) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'p':
|
case 'p': // --placement
|
||||||
if (0 == strcmp(optarg, "center")) {
|
if (0 == strcmp(optarg, "center")) {
|
||||||
args.placement = PLACEMENT_CENTER;
|
args.placement = PLACEMENT_CENTER;
|
||||||
} else if (0 == strcmp(optarg, "cover")) {
|
} else if (0 == strcmp(optarg, "cover")) {
|
||||||
|
@ -374,7 +383,7 @@ bool parse_cmdline(int argc, char **argv) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'P':
|
case 'P': // --palette
|
||||||
if (0 == strcmp(optarg, "default")) {
|
if (0 == strcmp(optarg, "default")) {
|
||||||
args.palette_type = PALETTE_DEFAULT;
|
args.palette_type = PALETTE_DEFAULT;
|
||||||
} else if (0 == strcmp(optarg, "defaultgray")) {
|
} else if (0 == strcmp(optarg, "defaultgray")) {
|
||||||
|
|
Loading…
Reference in New Issue