--- psiconv/trunk/program/psiconv/gen_image.c 1999/11/30 00:26:55 33 +++ psiconv/trunk/program/psiconv/gen_image.c 1999/12/02 17:18:55 34 @@ -21,15 +21,17 @@ #include "data.h" #include "gen.h" #include +#include "psiconv.h" #if IMAGEMAGICK #include #endif /* This is ridiculously simple using ImageMagick. Without it, it would - be somewhat more hard - it will be left for later on */ + be quite somewhat harder - it will be left for later on */ -static void gen_paint_data_section(FILE *of, psiconv_paint_data_section sec) +static void gen_paint_data_section(FILE *of, psiconv_paint_data_section sec, + const char *dest) { #if IMAGEMAGICK ImageInfo image_info; @@ -39,30 +41,52 @@ sec->blue,NULL); GetImageInfo(&image_info); image_info.file = of; - strcpy(image->filename, "bmp:test.bmp"); + strcpy(image->magick, dest); WriteImage(&image_info,image); #endif } -static void psiconv_gen_image_mbm(FILE *of, psiconv_mbm_f f) +static void psiconv_gen_image_mbm(FILE *of, psiconv_mbm_f f, const char *dest) { psiconv_paint_data_section section; if (psiconv_list_length(f->sections) >= 1) { section = psiconv_list_get(f->sections,0); - gen_paint_data_section(of,section); + gen_paint_data_section(of,section,dest); } } -static void psiconv_gen_image_sketch(FILE *of, psiconv_sketch_f f) +static void psiconv_gen_image_sketch(FILE *of, psiconv_sketch_f f, + const char * dest) { - gen_paint_data_section(of,f->sketch_sec->picture); + gen_paint_data_section(of,f->sketch_sec->picture,dest); } -void psiconv_gen_image(FILE * of, psiconv_file file) +static int psiconv_gen_image(FILE * of, const psiconv_file file, + const char *dest) { - if (file->type == psiconv_mbm_file) - psiconv_gen_image_mbm(of,(psiconv_mbm_f) file->file); - else if (file->type == psiconv_sketch_file) - psiconv_gen_image_sketch(of,(psiconv_sketch_f) file->file); + if (file->type == psiconv_mbm_file) { + psiconv_gen_image_mbm(of,(psiconv_mbm_f) file->file,dest); + return 0; + } else if (file->type == psiconv_sketch_file) { + psiconv_gen_image_sketch(of,(psiconv_sketch_f) file->file,dest); + return 0; + } else + return -1; +} + +void init_image(void) +{ + struct psiconv_fileformat ff; +#if IMAGEMAGICK + MagickInfo *mi; + ff.output = psiconv_gen_image; + for (mi = GetMagickInfo(NULL); mi ; mi = mi->next) { + if (mi->encoder) { + ff.name = strdup(mi->tag); + ff.description = strdup(mi->description); + psiconv_list_add(fileformat_list,&ff); + } + } +#endif }