ImageExportOptions oldOptions,
ImageExportOptions newOptions
) {
// Copy over the file name, updating its suffix:
File file = oldOptions.getExportFile();
ImageType newType = newOptions.getImageType();
if ((file != null) && (! file.isDirectory())) {
file = ExportNameUtility.ensureCompatibleExtension(
file, newType
);
newOptions.setExportFile(file);
}
// Clone values from old to new:
if ( oldOptions instanceof ImageFileExportOptions &&
newOptions instanceof ImageFileExportOptions ) {
final ImageFileExportOptions oldFileOptions =
(ImageFileExportOptions)oldOptions;
final ImageFileExportOptions newFileOptions =
(ImageFileExportOptions)newOptions;
copyOption( oldFileOptions.originalWidth, newFileOptions.originalWidth );
copyOption( oldFileOptions.originalHeight, newFileOptions.originalHeight );
copyOption( oldFileOptions.resizeWidth, newFileOptions.resizeWidth );
copyOption( oldFileOptions.resizeHeight, newFileOptions.resizeHeight );
copyOption( oldFileOptions.colorProfile, newFileOptions.colorProfile );
copyOption( oldFileOptions.renderingIntent, newFileOptions.renderingIntent );
copyOption( oldFileOptions.blackPointCompensation, newFileOptions.blackPointCompensation );
}
// Switches from sidecar TIFF to multilayer TIFF are possible:
ImageType oldType = oldOptions.getImageType();
if ((oldType == TIFFImageType.INSTANCE) &&
(newType == TIFFImageType.INSTANCE)) {
TIFFImageType.ExportOptions oldTiff =
(TIFFImageType.ExportOptions) oldOptions;
TIFFImageType.ExportOptions newTiff =