MCPcopy
hub / github.com/python-pillow/Pillow / _encode_tile

Function _encode_tile

src/PIL/ImageFile.py:672–704  ·  view source on GitHub ↗
(
    im: Image.Image,
    fp: IO[bytes],
    tile: list[_Tile],
    bufsize: int,
    fh: int | None,
    exc: BaseException | None = None,
)

Source from the content-addressed store, hash-verified

670
671
672def _encode_tile(
673 im: Image.Image,
674 fp: IO[bytes],
675 tile: list[_Tile],
676 bufsize: int,
677 fh: int | None,
678 exc: BaseException | None = None,
679) -> None:
680 for encoder_name, extents, offset, args in tile:
681 if offset > 0:
682 fp.seek(offset)
683 encoder = Image._getencoder(im.mode, encoder_name, args, im.encoderconfig)
684 try:
685 encoder.setimage(im.im, extents)
686 if encoder.pushes_fd:
687 encoder.setfd(fp)
688 errcode = encoder.encode_to_pyfd()[1]
689 else:
690 if exc:
691 # compress to Python file-compatible object
692 while True:
693 errcode, data = encoder.encode(bufsize)[1:]
694 fp.write(data)
695 if errcode:
696 break
697 else:
698 # slight speedup: compress to real file object
699 assert fh is not None
700 errcode = encoder.encode_to_file(fh, bufsize)
701 if errcode < 0:
702 raise _get_oserror(errcode, encoder=True) from exc
703 finally:
704 encoder.cleanup()
705
706
707def _safe_read(fp: IO[bytes], size: int) -> bytes:

Callers 1

_saveFunction · 0.85

Calls 9

_get_oserrorFunction · 0.85
setimageMethod · 0.80
setfdMethod · 0.80
encode_to_pyfdMethod · 0.80
encode_to_fileMethod · 0.80
seekMethod · 0.45
encodeMethod · 0.45
writeMethod · 0.45
cleanupMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…