public static BufferedImage readRawBufferedImage(DicomImageReader reader, int frameNumber)
      throws IOException {

    int imageIndexFromZero = frameNumber - 1;
    WritableRaster raster = (WritableRaster) reader.readRaster(imageIndexFromZero, null);
    DicomObject ds = ((DicomStreamMetaData) reader.getStreamMetadata()).getDicomObject();
    ColorModel cm = ColorModelFactory.createColorModel(ds);
    return new BufferedImage(cm, raster, false, null);
  }
 private DicomStreamMetaData copyMeta(DicomImageReader reader, String tsuid) throws IOException {
   DicomStreamMetaData oldMeta = (DicomStreamMetaData) reader.getStreamMetadata();
   DicomStreamMetaData ret = new DicomStreamMetaData();
   DicomObject ds = oldMeta.getDicomObject();
   DicomObject newDs = new BasicDicomObject();
   ds.copyTo(newDs);
   newDs.putString(Tag.TransferSyntaxUID, VR.UI, tsuid);
   ret.setDicomObject(newDs);
   return ret;
 }