int main (int argc, const char * argv[]) { if (argc < 3) { printf("Usage: asciigenerator input.bmp definition.txt [grid size]\n"); exit(EXIT_SUCCESS); } const char * inputFile = argv[1]; const char * definitionsFile = argv[2]; treeRoot = createTreeFromFile(definitionsFile); int width = 0; int height = 0; int rowSize = 0; unsigned char * bmpData = createBitmapData(inputFile, &width, &height, &rowSize); int gridCols = 1; int gridRows = 1; if (argc == 5) { gridCols = atoi(argv[3]); gridRows = atoi(argv[4]); } calculateGrid(bmpData, gridCols, gridRows, width, height, treeRoot); free(bmpData); destroyTree(treeRoot); return 0; }
int saveMMBitmapAsBMP(MMBitmapRef bitmap, const char *path) { FILE *fp; size_t dataLen; uint8_t *data; if ((fp = fopen(path, "wb")) == NULL) return -1; if ((data = createBitmapData(bitmap, &dataLen)) == NULL) { fclose(fp); return -1; } if (fwrite(data, dataLen, 1, fp) == 0) { free(data); fclose(fp); return -1; } free(data); fclose(fp); return 0; }