--- psiconv/trunk/program/psiconv/gen_image.c 2004/01/18 19:58:12 187 +++ psiconv/trunk/program/psiconv/gen_image.c 2004/02/04 12:19:09 196 @@ -1,6 +1,6 @@ /* * gen_image.c - Part of psiconv, a PSION 5 file formats converter - * Copyright (c) 1999 Frodo Looijaard + * Copyright (c) 1999-2004 Frodo Looijaard * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -33,11 +33,25 @@ #include "dmalloc.h" #endif +static Image *get_paint_data_section(psiconv_paint_data_section sec); +static void image_to_list(psiconv_list list,Image *image,const char *dest); +static void gen_image_list(const psiconv_config config,psiconv_list list, + const psiconv_list sections, const char *dest); +static void gen_clipart(const psiconv_config config,psiconv_list list, + const psiconv_clipart_f f, const char *dest); +static void gen_mbm(const psiconv_config config,psiconv_list list, + const psiconv_mbm_f f, const char *dest); +static void gen_sketch(const psiconv_config config,psiconv_list list, + const psiconv_sketch_f f, const char *dest); +static int gen_image(psiconv_config config, psiconv_list list, + const psiconv_file file, const char *dest, + const encoding encoding_type); + /* This is ridiculously simple using ImageMagick. Without it, it would be quite somewhat harder - it will be left for later on. Note that we ignore any errors. Dangerous... */ -static Image *get_paint_data_section(psiconv_paint_data_section sec) +Image *get_paint_data_section(psiconv_paint_data_section sec) { Image *image; float *pixel, *p, *red, *green, *blue; @@ -70,7 +84,7 @@ } -static void image_to_list(psiconv_list list,Image *image,const char *dest) +void image_to_list(psiconv_list list,Image *image,const char *dest) { ImageInfo *image_info; ExceptionInfo exc; @@ -96,7 +110,7 @@ DestroyImageInfo(image_info); } -static void gen_image_list(const psiconv_config config,psiconv_list list, +void gen_image_list(const psiconv_config config,psiconv_list list, const psiconv_list sections, const char *dest) { psiconv_paint_data_section section; @@ -155,7 +169,7 @@ DestroyImages(images); } -static void gen_image_clipart(const psiconv_config config,psiconv_list list, +void gen_clipart(const psiconv_config config,psiconv_list list, const psiconv_clipart_f f, const char *dest) { int i; @@ -180,14 +194,14 @@ psiconv_list_free(sections); } -static void gen_image_mbm(const psiconv_config config,psiconv_list list, +void gen_mbm(const psiconv_config config,psiconv_list list, const psiconv_mbm_f f, const char *dest) { gen_image_list(config,list,f->sections,dest); } -static void gen_image_sketch(const psiconv_config config,psiconv_list list, +void gen_sketch(const psiconv_config config,psiconv_list list, const psiconv_sketch_f f, const char *dest) { Image *image; @@ -198,18 +212,18 @@ } -static int gen_image(psiconv_config config, psiconv_list list, +int gen_image(psiconv_config config, psiconv_list list, const psiconv_file file, const char *dest, const encoding encoding_type) { if (file->type == psiconv_mbm_file) - gen_image_mbm(config,list,(psiconv_mbm_f) file->file,dest); + gen_mbm(config,list,(psiconv_mbm_f) file->file,dest); else if (file->type == psiconv_clipart_file) - gen_image_clipart(config,list, + gen_clipart(config,list, (psiconv_clipart_f) file->file,dest); else if (file->type == psiconv_sketch_file) { - gen_image_sketch(config, list,(psiconv_sketch_f) file->file,dest); + gen_sketch(config, list,(psiconv_sketch_f) file->file,dest); } else return -1; return 0; @@ -225,6 +239,10 @@ if (mi->encoder) { ff.name = strdup(mi->name); ff.description = strdup(mi->description); + ff.supported_format = FORMAT_CLIPART_SINGLE | FORMAT_MBM_SINGLE | + FORMAT_SKETCH; + if (mi->adjoin) + ff.supported_format |= FORMAT_MBM_MULTIPLE | FORMAT_CLIPART_MULTIPLE; psiconv_list_add(fileformat_list,&ff); } }