I am developing a software which deals with different scientific file types such as mrc and tiff. These files that include images and metadata, are introduced by client to the system.\r\n\r\nThey have different structures to store binary images and metadata. There are usually more than one image in each file. In some cases I need to convert them to each other. My question is how I can do this conversion. Do I need to use any software or library or I can develop it myself?\r\n\r\nI thought to ask from client to provide their own reader and writer in form of executable files when they introduce their new type. Then I should call the reader of source type to read the file, extract binary data and metadata. Store them somewhere in a defined structure. Then I have to invoke the writer of the destination type to write in the new file.\r\n\r\nIf this is a good idea, my question is what is the best way to implement it? What is a generic interface for the reader and writer? In which generic structure I should store the content?