Skip to content

BPCS

stegobox.codec.bpcs.BPCS

Bases: BaseCodec

BPCS: Bit-Plane Complexity Segmentation Steganography.

Hide txt into png image using BPCS. It embed a message in an image by replacing all "complex" blocks of pixels in the image with portions of our message.

  • Created by: Jiayao Yang
  • Created time: 2022/10/11

Source code derived from: mobeets/bpcs.

Source code in stegobox/codec/bpcs/bpcs.py
class BPCS(BaseCodec):
    """
    BPCS: Bit-Plane Complexity Segmentation Steganography.

    Hide txt into png image using BPCS. It embed a message in an image by
    replacing all "complex" blocks of pixels in the image with portions of our message.

    * Created by: Jiayao Yang
    * Created time: 2022/10/11

    Source code derived from: [mobeets/bpcs](https://github.com/mobeets/bpcs).
    """

    def __init__(self, alpha: float = 0.5, verbose: bool = True) -> None:
        super().__init__()
        self.alpha = alpha
        self.verbose = verbose

    def encode(self, carrier: Image.Image, payload: str) -> Image.Image:
        """Hide txt into png image.

        Args:
            carrier: Carrier image in PNG. Read with `stegobox.io.image.read()`.
            payload: Secret payload message.

        Returns:
            The encrypted steganography image.
        """

        return encode_bpcs(carrier, payload, self.alpha, self.verbose)

    def decode(self, carrier: Image.Image) -> str:
        """Decode the secret payload from the carrier image

        Args:
            carrier: Carrier image in PNG. Read with `stegobox.io.image.read`.

        Returns:
            The decoded payload (secret message).
        """
        return decode_bpcs(carrier, self.alpha, self.verbose)

encode(carrier, payload)

Hide txt into png image.

Parameters:

Name Type Description Default
carrier Image

Carrier image in PNG. Read with stegobox.io.image.read().

required
payload str

Secret payload message.

required

Returns:

Type Description
Image

The encrypted steganography image.

Source code in stegobox/codec/bpcs/bpcs.py
def encode(self, carrier: Image.Image, payload: str) -> Image.Image:
    """Hide txt into png image.

    Args:
        carrier: Carrier image in PNG. Read with `stegobox.io.image.read()`.
        payload: Secret payload message.

    Returns:
        The encrypted steganography image.
    """

    return encode_bpcs(carrier, payload, self.alpha, self.verbose)

decode(carrier)

Decode the secret payload from the carrier image

Parameters:

Name Type Description Default
carrier Image

Carrier image in PNG. Read with stegobox.io.image.read.

required

Returns:

Type Description
str

The decoded payload (secret message).

Source code in stegobox/codec/bpcs/bpcs.py
def decode(self, carrier: Image.Image) -> str:
    """Decode the secret payload from the carrier image

    Args:
        carrier: Carrier image in PNG. Read with `stegobox.io.image.read`.

    Returns:
        The decoded payload (secret message).
    """
    return decode_bpcs(carrier, self.alpha, self.verbose)