fprintf(stderr, "swf_object_replace_jpegdata: tag == NULL\n");
return 1;
}
- swf_tag_create_input_detail(tag, swf);
if (swf->shape_adjust_mode) {
- swf_tag_jpeg_detail_t *swf_tag_jpeg = (swf_tag_jpeg_detail_t *) tag->detail;
- jpeg_size(swf_tag_jpeg->jpeg_data, swf_tag_jpeg->jpeg_data_len,
- &old_width, &old_height);
+ swf_tag_create_input_detail(tag, swf);
+ swf_tag_get_bitmap_size(tag, &old_width, &old_height);
jpeg_size(jpeg_data, jpeg_data_len, &new_width, &new_height);
}
result = swf_tag_replace_jpeg_data(tag, image_id,
unsigned long png_data_len) {
int result = 1;
swf_tag_t *tag;
+ int old_width, old_height, new_width, new_height;
if (swf == NULL) {
fprintf(stderr, "swf_object_replace_pngdata: swf == NULL\n");
return 1;
fprintf(stderr, "swf_object_replace_pngdata: tag == NULL\n");
return 1;
}
-
+ if (swf->shape_adjust_mode) {
+ swf_tag_create_input_detail(tag, swf);
+ swf_tag_get_bitmap_size(tag, &old_width, &old_height);
+ png_size(png_data, png_data_len, &new_width, &new_height);
+ }
result = swf_tag_replace_png_data(tag, image_id,
png_data, png_data_len);
+ if (result) {
+ fprintf(stderr, "swf_object_replace_pngdata: swf_tag_replace_png_data failed\n");
+ return result;
+ }
+ if (swf->shape_adjust_mode) {
+ swf_object_adjust_shapebitmap(swf, image_id,
+ old_width, old_height,
+ new_width, new_height);
+ }
return result;
}
unsigned long gif_data_len) {
int result = 1;
swf_tag_t *tag;
+ int old_width, old_height, new_width, new_height;
if (swf == NULL) {
fprintf(stderr, "swf_object_replace_gifdata: swf == NULL\n");
return 1;
fprintf(stderr, "swf_object_replace_gifdata: tag == NULL\n");
return 1;
}
-
+ if (swf->shape_adjust_mode) {
+ swf_tag_create_input_detail(tag, swf);
+ swf_tag_get_bitmap_size(tag, &old_width, &old_height);
+ gif_size(gif_data, gif_data_len, &new_width, &new_height);
+ }
result = swf_tag_replace_gif_data(tag, image_id,
gif_data, gif_data_len);
+ if (result) {
+ fprintf(stderr, "swf_object_replace_pngdata: swf_tag_replace_png_data failed\n");
+ return result;
+ }
+ if (swf->shape_adjust_mode) {
+ swf_object_adjust_shapebitmap(swf, image_id,
+ old_width, old_height,
+ new_width, new_height);
+ }
return result;
}
return 1; // no match - no identity method
}
+/* bitmap */
+
+int
+swf_tag_get_bitmap_size(swf_tag_t *tag,
+ int *width, int *height) {
+ int ret = 0;
+ if (tag == NULL) {
+ fprintf(stderr, "swf_tag_get_bitmap_size: tag == NULL\n");
+ return 1;
+ }
+ if (! tag->detail) {
+ fprintf(stderr, "swf_tag_get_bitmap_size: tag->detail == NULL\n");
+ return 1;
+ }
+
+ if (isBitsJPEGTag(tag->tag)) {
+ swf_tag_jpeg_detail_t *swf_tag_jpeg = (swf_tag_jpeg_detail_t *) tag->detail;
+ ret = jpeg_size(swf_tag_jpeg->jpeg_data, swf_tag_jpeg->jpeg_data_len,
+ width, height);
+ } else if (isBitsLosslessTag(tag->tag)) {
+ swf_tag_lossless_detail_t *swf_tag_lossless = (swf_tag_lossless_detail_t *) tag->detail;
+ *width = swf_tag_lossless->width;
+ *height = swf_tag_lossless->height;
+ }
+ return ret;
+
+}
+
+
unsigned char *
swf_tag_get_jpeg_data(swf_tag_t *tag, unsigned long *length, int image_id, swf_tag_t *tag_jpegtables) {
swf_tag_info_t *tag_info;