svnno****@sourc*****
svnno****@sourc*****
2008年 9月 12日 (金) 20:09:00 JST
Revision: 48 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=swfed&view=rev&rev=48 Author: yoya Date: 2008-09-12 20:08:59 +0900 (Fri, 12 Sep 2008) Log Message: ----------- ビットマップ形式 PNG を SWF にさしはさむ際に、 画像データ部にゴミの値が混ざった事への対処。 bitstream の close が早すぎたのが原因。 Modified Paths: -------------- src/swf_tag_lossless.c -------------- next part -------------- Modified: src/swf_tag_lossless.c =================================================================== --- src/swf_tag_lossless.c 2008-09-11 01:46:24 UTC (rev 47) +++ src/swf_tag_lossless.c 2008-09-12 11:08:59 UTC (rev 48) @@ -207,10 +207,10 @@ indices_len = ((swf_tag_lossless->width + 3) & -4) * swf_tag_lossless->height; old_buff_ref = bitstream_buffer(bs2, 0); old_size = bitstream_length(bs2); - bitstream_close(bs2); tmp_buff = malloc(old_size); // too enough size compress(tmp_buff, &compsize, old_buff_ref, old_size); bitstream_putstring(bs, tmp_buff, compsize); + bitstream_close(bs2); free(tmp_buff); } else { unsigned long bitmap_size; @@ -230,11 +230,11 @@ } old_buff_ref = bitstream_buffer(bs2, 0); old_size = bitstream_length(bs2); - bitstream_close(bs2); compsize = old_size; // too enough size tmp_buff = malloc(compsize); compress(tmp_buff, &compsize, old_buff_ref, old_size); bitstream_putstring(bs, tmp_buff, compsize); + bitstream_close(bs2); free(tmp_buff); } data = bitstream_steal(bs, length); @@ -375,7 +375,6 @@ swf_tag_lossless->bitmap2 = NULL; if (tag_no == 20) { swf_tag_lossless->bitmap = (swf_xrgb_t*) result_data; - } else if (tag_no == 36) { swf_tag_lossless->bitmap2 = (swf_argb_t*) result_data; } else {