MCPcopy Create free account
hub / github.com/MearaY/StegaPy / _read_bytes

Method _read_bytes

StegaPy/plugin/lsb/lsb_input_stream.py:36–53  ·  view source on GitHub ↗
(self, n_bytes: int)

Source from the content-addressed store, hash-verified

34 self.channel_bits_used = self.header.get_channel_bits_used()
35
36 def _read_bytes(self, n_bytes: int) -> bytes:
37 bits_per_ch = getattr(self, 'channel_bits_used', None) or self.config.get_max_bits_used_per_channel()
38 n_bits = n_bytes * 8
39
40 if bits_per_ch == 1:
41 flat = self.pixels.reshape(-1)
42 s, e = self._bit_offset, self._bit_offset + n_bits
43 bits = (flat[s:e] & 1).astype(np.uint8)
44 self._bit_offset += n_bits
45 return np.packbits(bits).tobytes()
46 else:
47 result = bytearray()
48 for _ in range(n_bytes):
49 byte_val = 0
50 for _ in range(8):
51 byte_val = (byte_val << 1) | self._read_one_bit()
52 result.append(byte_val)
53 return bytes(result)
54
55 def _read_one_bit(self) -> int:
56 bits_per_ch = getattr(self, 'channel_bits_used', None) or self.config.get_max_bits_used_per_channel()

Callers 2

__init__Method · 0.95
readMethod · 0.95

Calls 2

_read_one_bitMethod · 0.95

Tested by

no test coverage detected