Compare commits

...

13 commits

Author SHA1 Message Date
Cédric Bonhomme
bd3238acfa
chg: [dependencies] Updated dependencies.
Some checks are pending
Python application / build (3.10) (push) Waiting to run
Python application / build (3.11) (push) Waiting to run
Python application / build (3.12) (push) Waiting to run
2025-05-16 11:53:20 +02:00
Cédric Bonhomme
eb28c60d27
chg: [RELEASE] Bumped version number, improved packaging for the command line.
Some checks failed
Python application / build (3.10) (push) Has been cancelled
Python application / build (3.11) (push) Has been cancelled
Python application / build (3.12) (push) Has been cancelled
2025-05-03 23:15:52 +02:00
Cédric Bonhomme
7ba387ecdc
chg: [RELEASE] Updated documentation, updated dependencies, and bumped version number.
Some checks failed
Python application / build (3.10) (push) Has been cancelled
Python application / build (3.11) (push) Has been cancelled
Python application / build (3.12) (push) Has been cancelled
2025-04-26 23:28:17 +02:00
Cédric Bonhomme
ac66655ad8
chg: [dependencies] Updated dependencies.
Some checks failed
Python application / build (3.10) (push) Has been cancelled
Python application / build (3.11) (push) Has been cancelled
Python application / build (3.12) (push) Has been cancelled
2025-03-14 06:59:13 +01:00
Cédric Bonhomme
2e8b0fdec9
chg: [RELEASE] Bumped version number and aligned pyproject.toml file with standard specification.
Some checks failed
Python application / build (3.10) (push) Has been cancelled
Python application / build (3.11) (push) Has been cancelled
Python application / build (3.12) (push) Has been cancelled
2025-02-13 18:14:40 +01:00
Cédric Bonhomme
7849955cdb
chg: Updated pyproject.toml and dependencies.
Some checks failed
Python application / build (3.10) (push) Has been cancelled
Python application / build (3.11) (push) Has been cancelled
Python application / build (3.12) (push) Has been cancelled
2025-02-05 09:33:44 +01:00
Cédric Bonhomme
d6015157bf
chg: [packaging] Minor changes in the pryproject.toml file.
Some checks failed
Python application / build (3.10) (push) Has been cancelled
Python application / build (3.11) (push) Has been cancelled
Python application / build (3.12) (push) Has been cancelled
2025-01-30 14:55:46 +01:00
Cédric Bonhomme
43f02702f9
chg: Updated pyproject.toml for Poetry 2.0.
Some checks are pending
Python application / build (3.10) (push) Waiting to run
Python application / build (3.11) (push) Waiting to run
Python application / build (3.12) (push) Waiting to run
2025-01-30 08:02:09 +01:00
Cédric Bonhomme
9c69075d34
chg: [dependencies] Updated dependencies.
Some checks failed
Python application / build (3.10) (push) Has been cancelled
Python application / build (3.11) (push) Has been cancelled
Python application / build (3.12) (push) Has been cancelled
2025-01-03 13:18:47 +01:00
Cédric Bonhomme
10256ba28b
chg: Updated copyright years. 2025-01-03 13:17:58 +01:00
Cédric Bonhomme
70572bf047
chg: [dependencies] Updated dependencies.
Some checks failed
Python application / build (3.10) (push) Has been cancelled
Python application / build (3.11) (push) Has been cancelled
Python application / build (3.12) (push) Has been cancelled
2024-12-28 00:29:45 +01:00
Cédric Bonhomme
8ebd760f7e
chg: Updated README.
Some checks failed
Python application / build (3.10) (push) Has been cancelled
Python application / build (3.11) (push) Has been cancelled
Python application / build (3.12) (push) Has been cancelled
2024-10-05 16:47:41 +02:00
Cédric Bonhomme
0d0d328230
chg: Updated README.
Some checks are pending
Python application / build (3.10) (push) Waiting to run
Python application / build (3.11) (push) Waiting to run
Python application / build (3.12) (push) Waiting to run
2024-10-04 23:44:57 +02:00
27 changed files with 602 additions and 497 deletions

View file

@ -1,43 +0,0 @@
image: debian/bookworm
sources:
- https://git.sr.ht/~cedric/stegano
packages:
- python3
- python3-dev
- python3-pip
- python3-setuptools
- python3-venv
- pipx
- rustc
- cargo
- libffi-dev
- libssl-dev
- libjpeg-dev
- libpng-dev
- libfreetype6-dev
- ffmpeg
- libsm6
- libxext6
environment:
project: stegano
tasks:
- dependencies: |
pipx install poetry
export PATH="$PATH:/home/build/.local/bin"
cd ${project}
poetry install
- lint: |
export PATH="$PATH:/home/build/.local/bin"
cd ${project}
# stop the build if there are Python syntax errors or undefined names
poetry run flake8 stegano --count --select=E9,F63,F7,F82 --show-source --statistics
# exit-zero treats all errors as warnings.
poetry run flake8 stegano --count --max-complexity=10 --max-line-length=127 --statistics
- test: |
export PATH="$PATH:/home/build/.local/bin"
cd ${project}
poetry run nose2 -v --pretty-assert
- typecheck: |
export PATH="$PATH:/home/build/.local/bin"
cd ${project}
poetry run mypy .

View file

@ -22,7 +22,7 @@ jobs:
- name: Install dependencies
run: |
pip install poetry
poetry install
poetry install --with dev
- name: Lint with flake8
run: |

27
.github/workflows/release.yml vendored Normal file
View file

@ -0,0 +1,27 @@
on:
release:
types:
- published
name: release
jobs:
pypi-publish:
name: Upload release to PyPI
runs-on: ubuntu-latest
environment:
name: pypi
url: https://pypi.org/p/Stegano
permissions:
id-token: write # IMPORTANT: this permission is mandatory for trusted publishing
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install Poetry
run: python -m pip install --upgrade pip poetry
- name: Build artifacts
run: poetry build
- name: Publish package distributions to PyPI
uses: pypa/gh-action-pypi-publish@release/v1

View file

@ -27,6 +27,7 @@ repos:
hooks:
- id: fix-byte-order-marker
- id: trailing-whitespace
exclude: .md
- id: end-of-file-fixer
exclude: tests/.*
- repo: https://github.com/pypa/pip-audit

View file

@ -1,233 +1,251 @@
## Release History
### 1.0.1 (2025-05-03)
- Improved the packaging configuration for the command line (stegano.console).
### 1.0.0 (2025-04-26)
- Updated dependencies.
- Improved the packaging configuration.
- Fixed typing errors.
### 0.11.5 (2025-02-13)
- Updated dependencies.
- Aligned pyproject.toml with the standard specification.
- Publishing to PyPI using a Trusted Publisher.
### 0.11.4 (2024-09-07)
* Added a parameter, close_file, to lsb.reveal in order to
- Added a parameter, close_file, to lsb.reveal in order to
specify if the file must be closed at the end of the processing.
### 0.11.3 (2024-01-02)
* Stegano now supports Python 3.12. Support of Python 3.8 has been removed.
- Stegano now supports Python 3.12. Support of Python 3.8 has been removed.
### 0.11.2 (2023-05-23)
* improved typing of various functions;
* updated dependencies.
- improved typing of various functions;
- updated dependencies.
### 0.11.1 (2022-11-20)
* Fixed a bug in the command line when no sub-command is specified.
- Fixed a bug in the command line when no sub-command is specified.
### 0.11.0 (2022-11-20)
* Reduced memory footprint and processing speed,
- Reduced memory footprint and processing speed,
the modules ``lsb`` and ``lsbset`` have been merged
([PR #34](https://github.com/cedricbonhomme/Stegano/pull/34)).
### 0.10.2 (2022-01-13)
* Stegano now uses Pillow 9.0.0 (CVE-2022-22815).
- Stegano now uses Pillow 9.0.0 (CVE-2022-22815).
### 0.10.1 (2021-11-30)
* Stegano now uses OpenCV Python 4.5.4 abd Numpy 1.21.4.
- Stegano now uses OpenCV Python 4.5.4 abd Numpy 1.21.4.
### 0.10.0 (2021-11-29)
* new: Implemented Shi-Tomashi corner generator
- new: Implemented Shi-Tomashi corner generator
([PR #32](https://github.com/cedricbonhomme/Stegano/pull/32)).
Implemented by thundersparkf (see CONTRIBUTORS.md file).
### 0.9.9 (2021-07-02)
* Stegano now uses Pillow 8.3.0.
- Stegano now uses Pillow 8.3.0.
### 0.9.8 (2019-12-20)
* Stegano is now using poetry;
* minor improvements to the command line.
- Stegano is now using poetry;
- minor improvements to the command line.
### 0.9.7 (2019-10-27)
* fixed markdown of the previous release.
- fixed markdown of the previous release.
### 0.9.6 (2019-10-27)
* fixed markdown of the previous release;
- fixed markdown of the previous release;
### 0.9.5 (2019-10-27)
* updated dependencies;
* home page of the project is now: https://github.com/cedricbonhomme/Stegano
- updated dependencies;
- home page of the project is now: https://github.com/cedricbonhomme/Stegano
### 0.9.4 (2019-06-05)
* new: Implemented LFSR generator (with tests and CLI)
- new: Implemented LFSR generator (with tests and CLI)
([PR #27](https://github.com/cedricbonhomme/Stegano/pull/27))
* new: Implemented Ackermann generators CLI interface
- new: Implemented Ackermann generators CLI interface
([PR #26](https://github.com/cedricbonhomme/Stegano/pull/26))
* new: The Ackermann functions are not actual generators
- new: The Ackermann functions are not actual generators
([#24](https://github.com/cedricbonhomme/Stegano/issues/24))
* new: add a shift parameter for the lsbmodule
- new: add a shift parameter for the lsbmodule
([#25](https://github.com/cedricbonhomme/Stegano/issues/25))
* fix: lsbset.hide cause .png transparent area lost
- fix: lsbset.hide cause .png transparent area lost
([#23](https://github.com/cedricbonhomme/Stegano/issues/23))
### 0.9.3 (2019-04-10)
* it is now possible to either pass the location of an image or directly pass
- it is now possible to either pass the location of an image or directly pass
an already opened Image.Image to the hide and reveal methods;
* code re-formatted a bit with black.
- code re-formatted a bit with black.
### 0.9.2 (2019-04-04)
* updated Pillow dependency to version 6.0.0 in order to fix a bug when opening
- updated Pillow dependency to version 6.0.0 in order to fix a bug when opening
some PNG files (https://github.com/python-pillow/Pillow/issues/3557).
### 0.9.1 (2019-03-06)
* updated Pillow dependency in order to fix a bug when opening some PNG files.
- updated Pillow dependency in order to fix a bug when opening some PNG files.
### 0.9.0 (2018-12-18)
* added the possibility to shift the encoded bits when using the lsbset module.
- added the possibility to shift the encoded bits when using the lsbset module.
### 0.8.6 (2018-11-05)
* fixed a potential security issue related to CVE-2018-18074.
- fixed a potential security issue related to CVE-2018-18074.
### 0.8.5 (2018-04-18)
* Fixed an encoding problem which occured on Windows during the installation
- Fixed an encoding problem which occured on Windows during the installation
of the module.
### 0.8.4 (2018-02-28)
* Stegano is ready for use with pipenv and pipsi.
- Stegano is ready for use with pipenv and pipsi.
### 0.8.3 (2018-02-23)
* the recommended way to install Stegano is now to use pipenv.
- the recommended way to install Stegano is now to use pipenv.
### 0.8.2 (2017-12-20)
* Fixed a bug with the new 'encoding' function when using Stegano as a command
- Fixed a bug with the new 'encoding' function when using Stegano as a command
line tool. No default value was set. Default value is UTF-8.
### 0.8.1 (2017-05-16)
* it is now possible to specify the encoding (UTF-8 or UTF-32LE) of the message
- it is now possible to specify the encoding (UTF-8 or UTF-32LE) of the message
to hide/reveal through the command line;
* the help of the command line now displays the available choices for the
- the help of the command line now displays the available choices for the
arguments, if it is necessary (list of available encodings, list of available
generators);
* tests expected results lies now in a dedicated folder;
* a script has been added in order to get proper exit code check for mypy.
- tests expected results lies now in a dedicated folder;
- a script has been added in order to get proper exit code check for mypy.
### 0.8 (2017-05-06)
* updated command line. All commands are now prefixed with *stegano-*;
* improved type hints;
* it is possible to load and save images from and to file objects (BytesIO);
* improved checks when revealing a message with the lsbset module fails.
- updated command line. All commands are now prefixed with *stegano-*;
- improved type hints;
- it is possible to load and save images from and to file objects (BytesIO);
- improved checks when revealing a message with the lsbset module fails.
### 0.7.1 (2017-05-05)
* improved generators for the lsb-set module;
* improved tests for the generators;
* improved type hints.
- improved generators for the lsb-set module;
- improved tests for the generators;
- improved type hints.
### 0.7 (2017-05-04)
* unicode is now supported. By default UTF-8 encoding is used. UTF-32LE can also
- unicode is now supported. By default UTF-8 encoding is used. UTF-32LE can also
be used to hide non-ASCII characters. UTF-8 (8 bits) is the default choice
since it is possible to hide longer messages with it.
* improved checks with type hints.
- improved checks with type hints.
### 0.6.9 (2017-03-10)
* introduces some type hints (PEP 484);
* more tests for the generators and for the tools module;
* updated descriptions of generators;
* fixed a bug with a generator that has been previously renamed.
- introduces some type hints (PEP 484);
- more tests for the generators and for the tools module;
- updated descriptions of generators;
- fixed a bug with a generator that has been previously renamed.
### 0.6.8 (2017-03-08)
* bugfix: fixed #12: Error when revealing a hidden binary file in an image.
- bugfix: fixed #12: Error when revealing a hidden binary file in an image.
### 0.6.7 (2017-02-21)
* bugfix: added missing dependency in the setup.py file.
- bugfix: added missing dependency in the setup.py file.
### 0.6.6 (2017-02-20)
* improved docstrings for the desciption of the generators;
* improved the command which displays the list of generators.
- improved docstrings for the desciption of the generators;
- improved the command which displays the list of generators.
### 0.6.5 (2017-02-16)
* added a command to list all available generators for the lsb-set module;
* test when the data image is coming via byte stream, for the lsb module.
- added a command to list all available generators for the lsb-set module;
- test when the data image is coming via byte stream, for the lsb module.
### 0.6.4 (2017-02-06)
* a command line for the 'red' module has been added;
* bugfix: fixed a bug in the lsb-set command line when the generator wasn't
- a command line for the 'red' module has been added;
- bugfix: fixed a bug in the lsb-set command line when the generator wasn't
specified by the user.
### 0.6.3 (2017-01-29)
* Support for transparent PNG images has been added (lsb and lsbset modules).
- Support for transparent PNG images has been added (lsb and lsbset modules).
### 0.6.2 (2017-01-19)
* bugfix: solved a bug when the image data is coming via byte streams (ByteIO),
- bugfix: solved a bug when the image data is coming via byte streams (ByteIO),
for the exifHeader hiding method.
### 0.6.1 (2016-08-25)
* reorganization of the steganalysis sub-module.
- reorganization of the steganalysis sub-module.
### 0.6 (2016-08-04)
* improvements of the command line of Stéganô. The use of Stéganô through the
- improvements of the command line of Stéganô. The use of Stéganô through the
command line has slightly changed ('hide' and 'reveal' are now sub-parameters
of the command line). No changes if you use Stéganô as a module in your
software. The documentation has been updated accordingly.
@ -235,66 +253,66 @@
### 0.5.5 (2016-08-03)
* bugfix: Incorrect padding size in `base642string` in tools.base642binary().
- bugfix: Incorrect padding size in `base642string` in tools.base642binary().
### 0.5.4 (2016-05-22)
* the generator provided to the functions lsbset.hide() and lsbset.reveal() is
- the generator provided to the functions lsbset.hide() and lsbset.reveal() is
now a function. This is more convenient for a user who wants to use a custom
generator (not in the module lsbset.generators).
* performance improvements for the lsb and lsbset modules.
- performance improvements for the lsb and lsbset modules.
### 0.5.3 (2016-05-19)
* reorganization of all modules. No impact for the users of Stegano.
- reorganization of all modules. No impact for the users of Stegano.
### 0.5.2 (2016-05-18)
* improvements and bug fixes for the exifHeader module;
* added unit tests for the exifHeader module;
* improvements of the documentation.
- improvements and bug fixes for the exifHeader module;
- added unit tests for the exifHeader module;
- improvements of the documentation.
### 0.5.1 (2016-04-16)
* minor improvements and bug fixes;
* added unit tests for the slsb and slsbset modules.
- minor improvements and bug fixes;
- added unit tests for the slsb and slsbset modules.
### 0.5 (2016-03-18)
* management of greyscale images.
- management of greyscale images.
### 0.4.6 (2016-03-12)
* bugfix when the length of the message to hide is not divisible by 3,
- bugfix when the length of the message to hide is not divisible by 3,
for the slsb and slsbset module.
### 0.4.5 (2015-12-23)
* bugfix.
- bugfix.
### 0.4.4 (2015-12-23)
* new project home page;
* minor updated to the documentation.
- new project home page;
- minor updated to the documentation.
### 0.4.3 (2015-10-06)
* bug fixes for Python 3;
* bug fixes in the scripts in *./bin*.
- bug fixes for Python 3;
- bug fixes in the scripts in *./bin*.
### 0.4.2 (2015-10-05)
* first stable release on PypI.
- first stable release on PypI.
### 0.4 (2012-01-02)
@ -308,16 +326,16 @@ Python codes as a Python module or as a program in your scripts.
### 0.3 (2011-04-15)
* you can now use Stéganô as a library in your Python program;
- you can now use Stéganô as a library in your Python program;
(python setup.py install) or as a 'program' thanks to the scripts provided
in the bin directory;
* new documentation (reStructuredText) comes with Stéganô.
- new documentation (reStructuredText) comes with Stéganô.
### 0.2 (2011-03-24)
* this release introduces some bugfixes and a major speed improvement of the
- this release introduces some bugfixes and a major speed improvement of the
*reveal* function for the LSB method. Moreover it is now possible to hide a
binary file (ogg, executable, etc.);
* a new technique for hiding/revealing a message in a JPEG picture by using the
- a new technique for hiding/revealing a message in a JPEG picture by using the
description field of the image is provided.

View file

@ -16,5 +16,6 @@
- panni <panni@fragstore.net>
- Peter Justin <peter@peterjustin.me>
- thundersparkf - https://github.com/thundersparkf
- Mickaël Schoentgen <mschoentgen@nuxeo.com>
And thank you to the testers!

View file

@ -1,6 +1,5 @@
# Stegano
[![builds.sr.ht status](https://builds.sr.ht/~cedric/stegano.svg)](https://builds.sr.ht/~cedric/stegano)
[![Workflow](https://github.com/cedricbonhomme/Stegano/workflows/Python%20application/badge.svg?style=flat-square)](https://github.com/cedricbonhomme/Stegano/actions?query=workflow%3A%22Python+application%22)
[Stegano](https://github.com/cedricbonhomme/Stegano), a pure Python Steganography
@ -96,10 +95,13 @@ recommend you to install it in a Python virtual environment with poetry.
## Donations
If you wish and if you like Stegano, you can donate:
If you wish and if you like Stegano, you can donate via GitHub Sponsors:
[![GitHub Sponsors](https://img.shields.io/github/sponsors/cedricbonhomme)](https://github.com/sponsors/cedricbonhomme)
or with Bitcoin to this address:
bc1q56u6sj7cvlwu58v5lemljcvkh7v2gc3tv8mj0e
Thank you !
@ -108,6 +110,6 @@ Thank you !
This software is licensed under
[GNU General Public License version 3](https://www.gnu.org/licenses/gpl-3.0.html)
Copyright (C) 2010-2024 [Cédric Bonhomme](https://www.cedricbonhomme.org)
Copyright (C) 2010-2025 [Cédric Bonhomme](https://www.cedricbonhomme.org)
For more information, [the list of authors and contributors](CONTRIBUTORS.md) is available.

View file

@ -34,7 +34,7 @@ master_doc = "index"
# General information about the project.
project = "Stegano"
copyright = "2010-2024, Cédric Bonhomme"
copyright = "2010-2025, Cédric Bonhomme"
author = "Cédric Bonhomme <cedric@cedricbonhomme.org>"
# The version info for the project you're documenting, acts as replacement for

View file

@ -6,10 +6,6 @@
Presentation
============
.. image:: https://builds.sr.ht/~cedric/stegano.svg
:target: https://builds.sr.ht/~cedric/stegano
Stegano_ is a pure Python steganography_ module.
Steganography is the art and science of writing hidden messages in such a way

View file

@ -13,6 +13,3 @@ If you want to retrieve the source code (with the unit tests):
.. code-block:: bash
$ git clone https://github.com/cedricbonhomme/Stegano
.. image:: https://builds.sr.ht/~cedric/stegano.svg
:target: https://builds.sr.ht/~cedric/stegano

733
poetry.lock generated

File diff suppressed because it is too large Load diff

View file

@ -1,20 +1,44 @@
[tool.poetry]
[build-system]
requires = ["poetry-core>=2.0"]
build-backend = "poetry.core.masonry.api"
[project]
name = "stegano"
version = "0.11.4"
version = "1.0.1"
description = "A pure Python Steganography module."
authors = [
"Cédric Bonhomme <cedric@cedricbonhomme.org>"
{name = "Cédric Bonhomme", email= "cedric@cedricbonhomme.org"}
]
license = "GPL-3.0-or-later"
readme = "README.md"
keywords = ["Steganography", "Security", "Stegano"]
homepage = "https://github.com/cedricbonhomme/Stegano"
repository = "https://github.com/cedricbonhomme/Stegano"
documentation = "https://stegano.readthedocs.io"
dynamic = ["classifiers"]
keywords = ["steganography", "security", "stegano"]
requires-python = ">=3.10,<4.0"
dependencies = [
"pillow (>=9.5,<11.0)",
"piexif (>=1.1.3)",
"crayons (>=0.4.0)",
"opencv-python (>=4.8.1.78)"
]
[project.urls]
Homepage = "https://github.com/cedricbonhomme/Stegano"
Changelog = "https://github.com/cedricbonhomme/Stegano/blob/master/CHANGELOG.md"
Repository = "https://github.com/cedricbonhomme/Stegano"
Documentation = "https://stegano.readthedocs.io"
[project.scripts]
stegano-lsb = "stegano.console.lsb:main"
stegano-red = "stegano.console.red:main"
stegano-steganalysis-parity = "stegano.console.parity:main"
stegano-steganalysis-statistics = "stegano.console.statistics:main"
[tool.poetry]
requires-poetry = ">=2.0"
classifiers = [
"Development Status :: 5 - Production/Stable",
"Environment :: Console",
@ -25,29 +49,16 @@ classifiers = [
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)"
]
include = [
"README.md",
"COPYING",
"CHANGELOG.md",
"docs/**/*",
"bin/*"
]
[tool.poetry.scripts]
stegano-lsb = "bin.lsb:main"
stegano-red = "bin.red:main"
stegano-steganalysis-parity = "bin.parity:main"
stegano-steganalysis-statistics = "bin.statistics:main"
[tool.poetry.dependencies]
python = ">=3.10,<3.13"
pillow = ">=9.5,<11.0"
piexif = "^1.1.3"
crayons = "^0.4.0"
opencv-python = "^4.8.1.78"
[tool.poetry.group.dev.dependencies]
mypy = "^1.8.0"
@ -56,9 +67,10 @@ nose2 = "^0.14.0"
Sphinx = "^6.2.1"
pre-commit = "^3.6.0"
[build-system]
requires = ["poetry>=1.3.2"]
build-backend = "poetry.masonry.api"
[tool.poetry.group.dev]
optional = true
[tool.mypy]
python_version = "3.12"

View file

@ -1,6 +1,6 @@
#!/usr/bin/env python
# Stegano - Stegano is a pure Python steganography module.
# Copyright (C) 2010-2024 Cédric Bonhomme - https://www.cedricbonhomme.org
# Copyright (C) 2010-2025 Cédric Bonhomme - https://www.cedricbonhomme.org
#
# For more information : https://github.com/cedricbonhomme/Stegano
#

View file

@ -1,6 +1,6 @@
#!/usr/bin/env python
# Stegano - Stegano is a pure Python steganography module.
# Copyright (C) 2010-2024 Cédric Bonhomme - https://www.cedricbonhomme.org
# Copyright (C) 2010-2025 Cédric Bonhomme - https://www.cedricbonhomme.org
#
# For more information : https://github.com/cedricbonhomme/Stegano
#

View file

@ -1,6 +1,6 @@
#!/usr/bin/env python
# Stegano - Stegano is a pure Python steganography module.
# Copyright (C) 2010-2024 Cédric Bonhomme - https://www.cedricbonhomme.org
# Copyright (C) 2010-2025 Cédric Bonhomme - https://www.cedricbonhomme.org
#
# For more information : https://github.com/cedricbonhomme/Stegano
#

View file

@ -1,6 +1,6 @@
#!/usr/bin/env python
# Stegano - Stegano is a pure Python steganography module.
# Copyright (C) 2010-2024 Cédric Bonhomme - https://www.cedricbonhomme.org
# Copyright (C) 2010-2025 Cédric Bonhomme - https://www.cedricbonhomme.org
#
# For more information : https://github.com/cedricbonhomme/Stegano
#

View file

@ -1,6 +1,6 @@
#!/usr/bin/env python
# Stegano - Stegano is a pure Python steganography module.
# Copyright (C) 2010-2024 Cédric Bonhomme - https://www.cedricbonhomme.org
# Copyright (C) 2010-2025 Cédric Bonhomme - https://www.cedricbonhomme.org
#
# For more information : https://github.com/cedricbonhomme/Stegano
#

View file

@ -1,6 +1,6 @@
#!/usr/bin/env python
# Stegano - Stegano is a pure Python steganography module.
# Copyright (C) 2010-2024 Cédric Bonhomme - https://www.cedricbonhomme.org
# Copyright (C) 2010-2025 Cédric Bonhomme - https://www.cedricbonhomme.org
#
# For more information : https://github.com/cedricbonhomme/Stegano
#

View file

@ -1,6 +1,6 @@
#!/usr/bin/env python
# Stegano - Stegano is a pure Python steganography module.
# Copyright (C) 2010-2024 Cédric Bonhomme - https://www.cedricbonhomme.org
# Copyright (C) 2010-2025 Cédric Bonhomme - https://www.cedricbonhomme.org
#
# For more information : https://github.com/cedricbonhomme/Stegano
#

View file

@ -1,6 +1,6 @@
#!/usr/bin/env python
# Stegano - Stegano is a pure Python steganography module.
# Copyright (C) 2010-2024 Cédric Bonhomme - https://www.cedricbonhomme.org
# Copyright (C) 2010-2025 Cédric Bonhomme - https://www.cedricbonhomme.org
#
# For more information : https://github.com/cedricbonhomme/Stegano
#
@ -34,7 +34,10 @@ def steganalyse(img: Image.Image) -> Image.Image:
width, height = img.size
for row in range(height):
for col in range(width):
r, g, b = img.getpixel((col, row))[0:3]
if pixel := img.getpixel((col, row)):
r, g, b = pixel[0:3]
else:
raise Exception("Error during steganlysis.")
if r % 2 == 0:
r = 0
else:

View file

@ -1,6 +1,6 @@
#!/usr/bin/env python
# Stegano - Stegano is a pure Python steganography module.
# Copyright (C) 2010-2024 Cédric Bonhomme - https://www.cedricbonhomme.org
# Copyright (C) 2010-2025 Cédric Bonhomme - https://www.cedricbonhomme.org
#
# For more information : https://github.com/cedricbonhomme/Stegano
#

View file

@ -1,6 +1,6 @@
#!/usr/bin/env python
# Stegano - Stegano is a pure Python steganography module.
# Copyright (C) 2010-2024 Cédric Bonhomme - https://www.cedricbonhomme.org
# Copyright (C) 2010-2025 Cédric Bonhomme - https://www.cedricbonhomme.org
#
# For more information : https://github.com/cedricbonhomme/Stegano
#

View file

@ -1,6 +1,6 @@
#!/usr/bin/env python
# Stegano - Stegano is a pure Python steganography module.
# Copyright (C) 2010-2024 Cédric Bonhomme - https://www.cedricbonhomme.org
# Copyright (C) 2010-2025 Cédric Bonhomme - https://www.cedricbonhomme.org
#
# For more information : https://github.com/cedricbonhomme/Stegano
#

View file

@ -1,6 +1,6 @@
#!/usr/bin/env python
# Stegano - Stegano is a pure Python steganography module.
# Copyright (C) 2010-2024 Cédric Bonhomme - https://www.cedricbonhomme.org
# Copyright (C) 2010-2025 Cédric Bonhomme - https://www.cedricbonhomme.org
#
# For more information : https://github.com/cedricbonhomme/Stegano
#

View file

@ -1,6 +1,6 @@
#!/usr/bin/env python
# Stegano - Stegano is a pure Python steganography module.
# Copyright (C) 2010-2024 Cédric Bonhomme - https://www.cedricbonhomme.org
# Copyright (C) 2010-2025 Cédric Bonhomme - https://www.cedricbonhomme.org
#
# For more information : https://github.com/cedricbonhomme/Stegano
#

View file

@ -1,6 +1,6 @@
#!/usr/bin/env python
# Stegano - Stegano is a pure Python steganography module.
# Copyright (C) 2010-2024 Cédric Bonhomme - https://www.cedricbonhomme.org
# Copyright (C) 2010-2025 Cédric Bonhomme - https://www.cedricbonhomme.org
#
# For more information : https://github.com/cedricbonhomme/Stegano
#