int im_cp_desc_array( IMAGE *out, IMAGE *in );
int im_cp_descv( IMAGE *out, IMAGE *in1, ... );
int im_cp_desc( IMAGE *out, IMAGE *in );
int im_append_Hist( IMAGE *out, IMAGE *in );
It copies the fields describing the size, bands, type, resolution, and coding from the first input image to the output image. History and meta from all images are copied over. If two input images have the same meta tag, the earlier one takes precedence.
im_cp_descv(3) is a varargs conveniece function for im_cp_desc_array(3).
im_cp_desc(3) is a convenience function which calls im_cp_descv( image1, image2, NULL ).
im_append_Hist(3) appends the history attached to image2 to the end of the history on image1. It is used by image processing functions which take more than one image as input, and which need to make sure that all the input history appears in the output.
The first line of image2 history is not copied, as this conventionally holds background information which is not part of the file history.