# pydicom.encaps.encapsulate_extended

pydicom.encaps.encapsulate_extended(frames: List[bytes]) → Tuple[bytes, bytes, bytes]

  Return encapsulated image data and values for the Extended Offset Table elements.

  When using a compressed transfer syntax (such as RLE Lossless or one of JPEG formats) then any Pixel Data must be encapsulated. When many large frames are to be encapsulated, the total length of encapsulated data may exceed the maximum length available with the Basic Offset Table (2**32 - 1 bytes). Under these circumstances you can:

  - Pass `has_bot=False` to `encapsulate()`

  - Use `encapsulate_extended()` and add the Extended Offset Table elements to your dataset (recommended)

  Examples

      from pydicom.encaps import encapsulate_extended

      # 'frames' is a list of image frames that have been each been encoded
      # separately using the compression method corresponding to the Transfer
      # Syntax UID
      frames: List[bytes] = [...]
      out: Tuple[bytes, bytes, bytes] = encapsulate_extended(frames)

      ds.PixelData = out[0]
      ds.ExtendedOffsetTable = out[1]
      ds.ExtendedOffsetTableLengths = out[2]

  Parameters:

    frames (list of bytes) – The compressed frame data to encapsulate, one frame per item.

  Returns:

    The (encapsulated frames, extended offset table, extended offset table lengths).

  Return type:

    bytes, bytes, bytes

  See also

  `encapsulate()`