--- psiconv/trunk/program/psiconv/gen_image.c 2000/12/10 16:49:40 58 +++ psiconv/trunk/program/psiconv/gen_image.c 2000/12/15 17:17:45 66 @@ -59,6 +59,7 @@ *p++ = *blue++; } } + image = ConstituteImage(sec->xsize,sec->ysize,"RGB",FloatPixel,pixel,&exc); if (! image) { MagickError(exc.severity,exc.message,exc.qualifier); @@ -104,7 +105,10 @@ GetExceptionInfo(&exc); image_info = CloneImageInfo(NULL); set_filename(image->filename,dest,filename); - images = CoalesceImages(image,&exc); + if (image->next) + images = CoalesceImages(image,&exc); + else + images = image; if (! images) CatchImageException(image); @@ -112,7 +116,8 @@ if (!status) CatchImageException(images); DestroyImageInfo(image_info); - DestroyImages(image); + if (image != images) + DestroyImages(image); DestroyImages(images); return 0; #endif @@ -121,6 +126,7 @@ static int psiconv_gen_image_mbm(const char *filename, psiconv_mbm_f f, const char *dest) { + #if IMAGEMAGICK psiconv_paint_data_section section; MagickInfo *mi = GetMagickInfo(dest); @@ -131,18 +137,18 @@ ExceptionInfo exc; int i; unsigned int status; - + if ((psiconv_list_length(f->sections) < 1) || ((psiconv_list_length(f->sections)) > 1 && ! (mi->adjoin))) #endif return -1; #if IMAGEMAGICK + for (i = 0; i < psiconv_list_length(f->sections); i++) { section = psiconv_list_get(f->sections,i); this_image = get_paint_data_section(section); if (! image) { image = this_image; - this_image->scene=1; } else { last_image->next=this_image; this_image->previous=last_image; @@ -153,7 +159,10 @@ GetExceptionInfo(&exc); image_info = CloneImageInfo(NULL); set_filename(image->filename,dest,filename); - images = CoalesceImages(image,&exc); + if (image->next) + images = CoalesceImages(image,&exc); + else + images = image; if (! images) CatchImageException(image); @@ -161,7 +170,8 @@ if (!status) CatchImageException(images); DestroyImageInfo(image_info); - DestroyImages(image); + if (image != images) + DestroyImages(image); DestroyImages(images); return 0; #endif @@ -188,7 +198,7 @@ { if (file->type == psiconv_mbm_file) psiconv_gen_image_mbm(filename,(psiconv_mbm_f) file->file,dest); - if (file->type == psiconv_clipart_file) + else if (file->type == psiconv_clipart_file) psiconv_gen_image_clipart(filename,(psiconv_clipart_f) file->file,dest); else if (file->type == psiconv_sketch_file) { psiconv_gen_image_sketch(filename,(psiconv_sketch_f) file->file,dest);