Thanks a lot for your help.
 
Probably the important part is what your T() is.

T is the format of the source file. In the case of jpeg, it is gil::jpeg_tag

 
When calling write_view, you can specify a JPEG quality explicitly via
something like image_write_info<jpeg_tag>(95) -- use a lower number for
a smaller file size but more artifacting.

If you don't specify it, GIL uses 100 by default (which might be
excessive).  Other editors probably use different values by default,
which might be causing the file size increase you're seeing.

May i know what do you mean by "Other editors" ?