⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test.c

📁 [Game.Programming].Academic - Graphics Gems (6 books source code)
💻 C
字号:
/* TEST FILE vectorize NOT FOR BOOK */#include <stdio.h>#include <stdlib.h>#include "chainCode.h"#include "pt2.h"#define MAXPATHLEN 1024extern chainCode* encode(pt2 *size, char *bitmap);char *mes1[]={"VECTORIZE",              "by Jean-Francois Doue",              " ",              "This program transforms a bitmap image into a chain code",              "Bitmap images should be encoded in the following format:",              " ",              "x_size y_size",              "00001111000",              "00001111000",              "00001001000",              "...........",              "00001111000",              " ",              "To convert the image, simply type",              " ",              "vectorized fileName",              " ",              "The encoded file will be saved under fileName.vec",              "\n",              0};char *mes2[]={"Error !",              "Your file cannot be opened",              0};/*************************************************************//*                                                           *//* A simple function to display messages on the screen       *//*                                                           *//*************************************************************/void printMessage(char** mes){int i;if (!mes)    return;while(mes[i]){    printf("\n%s",mes[i]);    i++;}}/*************************************************************//*                                                           *//* This function transforms a text-file containing a bitmap  *//* image into another text file containing the vectorized    *//* image.                                                    *//*                                                           *//*************************************************************/main(int argc, char** argv){pt2     size;int     i, fileN = 0;unsigned char   c;char        output_name[MAXPATHLEN],            *bitmap;FILE        *input,            *output;chainCode   *code;/* make sure the user uses the right syntax */if (argc == 1){    printMessage(mes1);    exit(0);}/* for all the specified files... */while (fileN < argc -1){    /* open the data file */    fileN++;    if ((input = fopen(argv[fileN], "r")) == NULL){        printMessage(mes2);        exit(0);    }    /* create the .vec file */    sprintf(output_name,"%s.vec", argv[fileN]);        if ((output = fopen(output_name, "w")) == NULL){        printMessage(mes2);        exit(0);    }    /* read x_size and y_size of the bitmap image*/    fscanf(input,"%d%d",&size.x, &size.y);    printf("\nEncoding file:%s (x=%d, y=%d)", argv[fileN], size.x, size.y);    /* read the data from the bitmap image*/    i = 0;    bitmap = malloc(size.x * size.y * sizeof(char));    while (!feof(input)){        fscanf(input,"%c", &c);        if (c == '0' || c == '1'){            bitmap[i] = c;            i++;            }    }    /* encode */    code = encode(&size, bitmap);    printf("\nThe encoded vector is:");    code->printSelf();    fprintf(output,"%s", code->code);    fclose(output);    fclose(input);    }printf("\n");return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -