--- psiconv/trunk/lib/psiconv/generate_image.c 2003/11/26 20:56:17 171 +++ psiconv/trunk/lib/psiconv/generate_image.c 2003/11/27 12:08:13 174 @@ -1,4 +1,5 @@ /* + generate_image.c - Part of psiconv, a PSION 5 file formats converter Copyright (c) 1999, 2000 Frodo Looijaard @@ -86,7 +87,8 @@ int psiconv_write_paint_data_section(const psiconv_config config, psiconv_buffer buf, - const psiconv_paint_data_section value) + const psiconv_paint_data_section value, + int is_clipart) { int res,colordepth,i; psiconv_pixel_ints ints; @@ -146,6 +148,12 @@ /* Encoding: no RLE for now */ if ((res = psiconv_write_u32(config,buf,0))) goto ERROR3; + if (is_clipart) { + if ((res = psiconv_write_u32(config,buf,0xffffffff))) + goto ERROR3; + if ((res = psiconv_write_u32(config,buf,0x00000044))) + goto ERROR3; + } for (i = 0; i < psiconv_list_length(bytes); i++) { if (!(byteptr = psiconv_list_get(bytes,i))) goto ERROR3; @@ -332,7 +340,7 @@ goto ERROR1; if ((res = psiconv_write_u16(config,buf,0x0000))) goto ERROR1; - if ((res = psiconv_write_paint_data_section(config,buf,value->picture))) + if ((res = psiconv_write_paint_data_section(config,buf,value->picture,0))) goto ERROR1; if ((res = psiconv_write_u16(config,buf,value->magnification_x * 0x03e8))) goto ERROR1; @@ -384,4 +392,34 @@ ERROR: return res; +} + +int psiconv_write_clipart_section(const psiconv_config config, + psiconv_buffer buf, + const psiconv_clipart_section value) +{ + int res; + + + if (!value) { + psiconv_warn(config,0,psiconv_buffer_length(buf), + "NULL Clipart Section"); + res = -PSICONV_E_GENERATE; + goto ERROR; + } + if ((res = psiconv_write_u32(config,buf,PSICONV_ID_CLIPART_ITEM))) + goto ERROR; + if ((res = psiconv_write_u32(config,buf,0x00000002))) + goto ERROR; + if ((res = psiconv_write_u32(config,buf,0x00000000))) + goto ERROR; + if ((res = psiconv_write_u32(config,buf,0x00000000))) + goto ERROR; + if ((res = psiconv_write_u32(config,buf,0x0000000C))) + goto ERROR; + if ((res = psiconv_write_paint_data_section(config,buf,value->picture,1))) + goto ERROR; + +ERROR: + return res; }