From 11b3ed879ebcd89aeb0b766e322257f32ad6677b Mon Sep 17 00:00:00 2001 From: CoprDistGit Date: Mon, 15 May 2023 07:42:57 +0000 Subject: automatic import of python-blendmodes --- .gitignore | 1 + python-blendmodes.spec | 1597 ++++++++++++++++++++++++++++++++++++++++++++++++ sources | 1 + 3 files changed, 1599 insertions(+) create mode 100644 python-blendmodes.spec create mode 100644 sources diff --git a/.gitignore b/.gitignore index e69de29..cc90dec 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1 @@ +/blendmodes-2022.tar.gz diff --git a/python-blendmodes.spec b/python-blendmodes.spec new file mode 100644 index 0000000..b060345 --- /dev/null +++ b/python-blendmodes.spec @@ -0,0 +1,1597 @@ +%global _empty_manifest_terminate_build 0 +Name: python-blendmodes +Version: 2022 +Release: 1 +Summary: Use this module to apply a number of blending modes to a background and foreground image +License: MIT +URL: https://github.com/FHPythonUtils/BlendModes +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/c6/6d/01b4dcc326887f3f45e78773dc8597540d1fa3fe9f69217fdc0e985b378e/blendmodes-2022.tar.gz +BuildArch: noarch + +Requires: python3-Pillow +Requires: python3-numpy +Requires: python3-aenum +Requires: python3-deprecation + +%description +[![GitHub top language](https://img.shields.io/github/languages/top/FHPythonUtils/BlendModes.svg?style=for-the-badge)](../../) +[![Repository size](https://img.shields.io/github/repo-size/FHPythonUtils/BlendModes.svg?style=for-the-badge)](../../) +[![Issues](https://img.shields.io/github/issues/FHPythonUtils/BlendModes.svg?style=for-the-badge)](../../issues) +[![License](https://img.shields.io/github/license/FHPythonUtils/BlendModes.svg?style=for-the-badge)](/LICENSE.md) +[![Commit activity](https://img.shields.io/github/commit-activity/m/FHPythonUtils/BlendModes.svg?style=for-the-badge)](../../commits/master) +[![Last commit](https://img.shields.io/github/last-commit/FHPythonUtils/BlendModes.svg?style=for-the-badge)](../../commits/master) +[![PyPI Downloads](https://img.shields.io/pypi/dm/blendmodes.svg?style=for-the-badge)](https://pypistats.org/packages/blendmodes) +[![PyPI Total Downloads](https://img.shields.io/badge/dynamic/json?style=for-the-badge&label=total%20downloads&query=%24.total_downloads&url=https%3A%2F%2Fapi.pepy.tech%2Fapi%2Fprojects%2Fblendmodes)](https://pepy.tech/project/blendmodes) +[![PyPI Version](https://img.shields.io/pypi/v/blendmodes.svg?style=for-the-badge)](https://pypi.org/project/blendmodes) + + +# BlendModes + +Project Icon + +Use this module to apply a number of blending modes to a background and +foreground image. + +## Credits + +Credits to: + +### MIT License Copyright (c) 2019 Paul Jewell + +For implementing blending from the Open Raster Image Spec + +### MIT License Copyright (c) 2018 Addison Elliott + +For implementing blending from Paint.NET + +### MIT License Copyright (c) 2017 pashango + +For implementing a number of blending functions used by other popular image +editors + +- [Credits](#credits) + - [MIT License Copyright (c) 2019 Paul Jewell](#mit-license-copyright-c-2019-paul-jewell) + - [MIT License Copyright (c) 2018 Addison Elliott](#mit-license-copyright-c-2018-addison-elliott) + - [MIT License Copyright (c) 2017 pashango](#mit-license-copyright-c-2017-pashango) +- [Examples](#examples) + - [Normal](#normal) + - [Multiply](#multiply) + - [Additive](#additive) + - [ColourBurn](#colourburn) + - [ColourDodge](#colourdodge) + - [Reflect](#reflect) + - [Glow](#glow) + - [Overlay](#overlay) + - [Difference](#difference) + - [Negation](#negation) + - [Lighten](#lighten) + - [Darken](#darken) + - [Screen](#screen) + - [XOR](#xor) + - [SoftLight](#softlight) + - [HardLight](#hardlight) + - [GrainExtract](#grainextract) + - [GrainMerge](#grainmerge) + - [Divide](#divide) + - [Hue](#hue) + - [Saturation](#saturation) + - [Colour](#colour) + - [Luminosity](#luminosity) + - [PinLight](#pinlight) + - [VividLight](#vividlight) + - [Exclusion](#exclusion) + - [DestIn](#destin) + - [DestOut](#destout) + - [DestAtop](#destatop) + - [SrcAtop](#srcatop) +- [Documentation](#documentation) +- [Install With PIP](#install-with-pip) +- [Language information](#language-information) + - [Built for](#built-for) +- [Install Python on Windows](#install-python-on-windows) + - [Chocolatey](#chocolatey) + - [Windows - Python.org](#windows---pythonorg) +- [Install Python on Linux](#install-python-on-linux) + - [Apt](#apt) + - [Dnf](#dnf) +- [Install Python on MacOS](#install-python-on-macos) + - [Homebrew](#homebrew) + - [MacOS - Python.org](#macos---pythonorg) +- [How to run](#how-to-run) + - [Windows](#windows) + - [Linux/ MacOS](#linux-macos) +- [Download Project](#download-project) + - [Clone](#clone) + - [Using The Command Line](#using-the-command-line) + - [Using GitHub Desktop](#using-github-desktop) + - [Download Zip File](#download-zip-file) +- [Community Files](#community-files) + - [Licence](#licence) + - [Changelog](#changelog) + - [Code of Conduct](#code-of-conduct) + - [Contributing](#contributing) + - [Security](#security) + - [Support](#support) + - [Rationale](#rationale) + +## Examples + +Be sure to include the following for the functions below + +```python +from blendmodes.blend import blendLayers, BlendType + +background = Image.open(THISDIR + "/background.png") +foreground = Image.open(THISDIR + "/foreground.png") +``` + +### Normal + +```python +blendLayers(background, foreground, BlendType.NORMAL) +``` + +![Normal](test/data/normal_expected.png) + +### Multiply + +```python +blendLayers(background, foreground, BlendType.MULTIPLY) +``` + +![Multiply](test/data/multiply_expected.png) + +### Additive + +```python +blendLayers(background, foreground, BlendType.ADDITIVE) +``` + +![Additive](test/data/additive_expected.png) + +### ColourBurn + +```python +blendLayers(background, foreground, BlendType.COLOURBURN) +``` + +![ColourBurn](test/data/colourburn_expected.png) + +### ColourDodge + +```python +blendLayers(background, foreground, BlendType.COLOURDODGE) +``` + +![ColourDodge](test/data/colourdodge_expected.png) + +### Reflect + +```python +blendLayers(background, foreground, BlendType.REFLECT) +``` + +![Reflect](test/data/reflect_expected.png) + +### Glow + +```python +blendLayers(background, foreground, BlendType.GLOW) +``` + +![Glow](test/data/glow_expected.png) + +### Overlay + +```python +blendLayers(background, foreground, BlendType.OVERLAY) +``` + +![Overlay](test/data/overlay_expected.png) + +### Difference + +```python +blendLayers(background, foreground, BlendType.DIFFERENCE) +``` + +![Difference](test/data/difference_expected.png) + +### Negation + +```python +blendLayers(background, foreground, BlendType.NEGATION) +``` + +![Negation](test/data/negation_expected.png) + +### Lighten + +```python +blendLayers(background, foreground, BlendType.LIGHTEN) +``` + +![Lighten](test/data/lighten_expected.png) + +### Darken + +```python +blendLayers(background, foreground, BlendType.DARKEN) +``` + +![Darken](test/data/darken_expected.png) + +### Screen + +```python +blendLayers(background, foreground, BlendType.SCREEN) +``` + +![Screen](test/data/screen_expected.png) + +### XOR + +```python +blendLayers(background, foreground, BlendType.XOR) +``` + +![XOR](test/data/xor_expected.png) + +### SoftLight + +```python +blendLayers(background, foreground, BlendType.SOFTLIGHT) +``` + +![SoftLight](test/data/softlight_expected.png) + +### HardLight + +```python +blendLayers(background, foreground, BlendType.HARDLIGHT) +``` + +![HardLight](test/data/hardlight_expected.png) + +### GrainExtract + +```python +blendLayers(background, foreground, BlendType.GRAINEXTRACT) +``` + +![GrainExtract](test/data/grainextract_expected.png) + +### GrainMerge + +```python +blendLayers(background, foreground, BlendType.GRAINMERGE) +``` + +![GrainMerge](test/data/grainmerge_expected.png) + +### Divide + +```python +blendLayers(background, foreground, BlendType.DIVIDE) +``` + +![Divide](test/data/divide_expected.png) + +### Hue + +```python +blendLayers(background, foreground, BlendType.HUE) +``` + +![Hue](test/data/hue_expected.png) + +### Saturation + +```python +blendLayers(background, foreground, BlendType.SATURATION) +``` + +![Saturation](test/data/saturation_expected.png) + +### Colour + +```python +blendLayers(background, foreground, BlendType.COLOUR) +``` + +![Colour](test/data/colour_expected.png) + +### Luminosity + +```python +blendLayers(background, foreground, BlendType.LUMINOSITY) +``` + +![Luminosity](test/data/luminosity_expected.png) + +### PinLight + +```python +blendLayers(background, foreground, BlendType.PINLIGHT) +``` + +![PinLight](test/data/pinlight_expected.png) + +### VividLight + +```python +blendLayers(background, foreground, BlendType.VIVIDLIGHT) +``` + +![VividLight](test/data/vividlight_expected.png) + +### Exclusion + +```python +blendLayers(background, foreground, BlendType.EXCLUSION) +``` + +![Exclusion](test/data/exclusion_expected.png) + +### DestIn + +```python +blendLayers(background, foreground, BlendType.DESTIN) +``` + +![Exclusion](test/data/destin_expected.png) + +### DestOut + +```python +blendLayers(background, foreground, BlendType.DESTOUT) +``` + +![Exclusion](test/data/destout_expected.png) + +### DestAtop + +```python +blendLayers(background, foreground, BlendType.DESTATOP) +``` + +![Exclusion](test/data/destatop_expected.png) + +### SrcAtop + +```python +blendLayers(background, foreground, BlendType.SRCATOP) +``` + +![Exclusion](test/data/srcatop_expected.png) + +## Documentation + +See the [Docs](/DOCS/) for more information. + +## Install With PIP + +```python +pip install blendmodes +``` + +Head to https://pypi.org/project/blendmodes/ for more info + +## Language information + +### Built for + +This program has been written for Python versions 3.7 - 3.10 and has been tested with both 3.7 and +3.10 + +## Install Python on Windows + +### Chocolatey + +```powershell +choco install python +``` + +### Windows - Python.org + +To install Python, go to https://www.python.org/downloads/windows/ and download the latest +version. + +## Install Python on Linux + +### Apt + +```bash +sudo apt install python3.x +``` + +### Dnf + +```bash +sudo dnf install python3.x +``` + +## Install Python on MacOS + +### Homebrew + +```bash +brew install python@3.x +``` + +### MacOS - Python.org + +To install Python, go to https://www.python.org/downloads/macos/ and download the latest +version. + +## How to run + +### Windows + +- Module + `py -3.x -m [module]` or `[module]` (if module installs a script) + +- File + `py -3.x [file]` or `./[file]` + +### Linux/ MacOS + +- Module + `python3.x -m [module]` or `[module]` (if module installs a script) + +- File + `python3.x [file]` or `./[file]` + +## Download Project + +### Clone + +#### Using The Command Line + +1. Press the Clone or download button in the top right +2. Copy the URL (link) +3. Open the command line and change directory to where you wish to +clone to +4. Type 'git clone' followed by URL in step 2 + + ```bash + git clone https://github.com/FHPythonUtils/BlendModes + ``` + +More information can be found at +https://help.github.com/en/articles/cloning-a-repository + +#### Using GitHub Desktop + +1. Press the Clone or download button in the top right +2. Click open in desktop +3. Choose the path for where you want and click Clone + +More information can be found at +https://help.github.com/en/desktop/contributing-to-projects/cloning-a-repository-from-github-to-github-desktop + +### Download Zip File + +1. Download this GitHub repository +2. Extract the zip archive +3. Copy/ move to the desired location + +## Community Files + +### Licence + +MIT License +(See the [LICENSE](/LICENSE.md) for more information.) + +### Changelog + +See the [Changelog](/CHANGELOG.md) for more information. + +### Code of Conduct + +Online communities include people from many backgrounds. The *Project* +contributors are committed to providing a friendly, safe and welcoming +environment for all. Please see the +[Code of Conduct](https://github.com/FHPythonUtils/.github/blob/master/CODE_OF_CONDUCT.md) + for more information. + +### Contributing + +Contributions are welcome, please see the +[Contributing Guidelines](https://github.com/FHPythonUtils/.github/blob/master/CONTRIBUTING.md) +for more information. + +### Security + +Thank you for improving the security of the project, please see the +[Security Policy](https://github.com/FHPythonUtils/.github/blob/master/SECURITY.md) +for more information. + +### Support + +Thank you for using this project, I hope it is of use to you. Please be aware that +those involved with the project often do so for fun along with other commitments +(such as work, family, etc). Please see the +[Support Policy](https://github.com/FHPythonUtils/.github/blob/master/SUPPORT.md) +for more information. + +### Rationale + +The rationale acts as a guide to various processes regarding projects such as +the versioning scheme and the programming styles used. Please see the +[Rationale](https://github.com/FHPythonUtils/.github/blob/master/RATIONALE.md) +for more information. + + +%package -n python3-blendmodes +Summary: Use this module to apply a number of blending modes to a background and foreground image +Provides: python-blendmodes +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-blendmodes +[![GitHub top language](https://img.shields.io/github/languages/top/FHPythonUtils/BlendModes.svg?style=for-the-badge)](../../) +[![Repository size](https://img.shields.io/github/repo-size/FHPythonUtils/BlendModes.svg?style=for-the-badge)](../../) +[![Issues](https://img.shields.io/github/issues/FHPythonUtils/BlendModes.svg?style=for-the-badge)](../../issues) +[![License](https://img.shields.io/github/license/FHPythonUtils/BlendModes.svg?style=for-the-badge)](/LICENSE.md) +[![Commit activity](https://img.shields.io/github/commit-activity/m/FHPythonUtils/BlendModes.svg?style=for-the-badge)](../../commits/master) +[![Last commit](https://img.shields.io/github/last-commit/FHPythonUtils/BlendModes.svg?style=for-the-badge)](../../commits/master) +[![PyPI Downloads](https://img.shields.io/pypi/dm/blendmodes.svg?style=for-the-badge)](https://pypistats.org/packages/blendmodes) +[![PyPI Total Downloads](https://img.shields.io/badge/dynamic/json?style=for-the-badge&label=total%20downloads&query=%24.total_downloads&url=https%3A%2F%2Fapi.pepy.tech%2Fapi%2Fprojects%2Fblendmodes)](https://pepy.tech/project/blendmodes) +[![PyPI Version](https://img.shields.io/pypi/v/blendmodes.svg?style=for-the-badge)](https://pypi.org/project/blendmodes) + + +# BlendModes + +Project Icon + +Use this module to apply a number of blending modes to a background and +foreground image. + +## Credits + +Credits to: + +### MIT License Copyright (c) 2019 Paul Jewell + +For implementing blending from the Open Raster Image Spec + +### MIT License Copyright (c) 2018 Addison Elliott + +For implementing blending from Paint.NET + +### MIT License Copyright (c) 2017 pashango + +For implementing a number of blending functions used by other popular image +editors + +- [Credits](#credits) + - [MIT License Copyright (c) 2019 Paul Jewell](#mit-license-copyright-c-2019-paul-jewell) + - [MIT License Copyright (c) 2018 Addison Elliott](#mit-license-copyright-c-2018-addison-elliott) + - [MIT License Copyright (c) 2017 pashango](#mit-license-copyright-c-2017-pashango) +- [Examples](#examples) + - [Normal](#normal) + - [Multiply](#multiply) + - [Additive](#additive) + - [ColourBurn](#colourburn) + - [ColourDodge](#colourdodge) + - [Reflect](#reflect) + - [Glow](#glow) + - [Overlay](#overlay) + - [Difference](#difference) + - [Negation](#negation) + - [Lighten](#lighten) + - [Darken](#darken) + - [Screen](#screen) + - [XOR](#xor) + - [SoftLight](#softlight) + - [HardLight](#hardlight) + - [GrainExtract](#grainextract) + - [GrainMerge](#grainmerge) + - [Divide](#divide) + - [Hue](#hue) + - [Saturation](#saturation) + - [Colour](#colour) + - [Luminosity](#luminosity) + - [PinLight](#pinlight) + - [VividLight](#vividlight) + - [Exclusion](#exclusion) + - [DestIn](#destin) + - [DestOut](#destout) + - [DestAtop](#destatop) + - [SrcAtop](#srcatop) +- [Documentation](#documentation) +- [Install With PIP](#install-with-pip) +- [Language information](#language-information) + - [Built for](#built-for) +- [Install Python on Windows](#install-python-on-windows) + - [Chocolatey](#chocolatey) + - [Windows - Python.org](#windows---pythonorg) +- [Install Python on Linux](#install-python-on-linux) + - [Apt](#apt) + - [Dnf](#dnf) +- [Install Python on MacOS](#install-python-on-macos) + - [Homebrew](#homebrew) + - [MacOS - Python.org](#macos---pythonorg) +- [How to run](#how-to-run) + - [Windows](#windows) + - [Linux/ MacOS](#linux-macos) +- [Download Project](#download-project) + - [Clone](#clone) + - [Using The Command Line](#using-the-command-line) + - [Using GitHub Desktop](#using-github-desktop) + - [Download Zip File](#download-zip-file) +- [Community Files](#community-files) + - [Licence](#licence) + - [Changelog](#changelog) + - [Code of Conduct](#code-of-conduct) + - [Contributing](#contributing) + - [Security](#security) + - [Support](#support) + - [Rationale](#rationale) + +## Examples + +Be sure to include the following for the functions below + +```python +from blendmodes.blend import blendLayers, BlendType + +background = Image.open(THISDIR + "/background.png") +foreground = Image.open(THISDIR + "/foreground.png") +``` + +### Normal + +```python +blendLayers(background, foreground, BlendType.NORMAL) +``` + +![Normal](test/data/normal_expected.png) + +### Multiply + +```python +blendLayers(background, foreground, BlendType.MULTIPLY) +``` + +![Multiply](test/data/multiply_expected.png) + +### Additive + +```python +blendLayers(background, foreground, BlendType.ADDITIVE) +``` + +![Additive](test/data/additive_expected.png) + +### ColourBurn + +```python +blendLayers(background, foreground, BlendType.COLOURBURN) +``` + +![ColourBurn](test/data/colourburn_expected.png) + +### ColourDodge + +```python +blendLayers(background, foreground, BlendType.COLOURDODGE) +``` + +![ColourDodge](test/data/colourdodge_expected.png) + +### Reflect + +```python +blendLayers(background, foreground, BlendType.REFLECT) +``` + +![Reflect](test/data/reflect_expected.png) + +### Glow + +```python +blendLayers(background, foreground, BlendType.GLOW) +``` + +![Glow](test/data/glow_expected.png) + +### Overlay + +```python +blendLayers(background, foreground, BlendType.OVERLAY) +``` + +![Overlay](test/data/overlay_expected.png) + +### Difference + +```python +blendLayers(background, foreground, BlendType.DIFFERENCE) +``` + +![Difference](test/data/difference_expected.png) + +### Negation + +```python +blendLayers(background, foreground, BlendType.NEGATION) +``` + +![Negation](test/data/negation_expected.png) + +### Lighten + +```python +blendLayers(background, foreground, BlendType.LIGHTEN) +``` + +![Lighten](test/data/lighten_expected.png) + +### Darken + +```python +blendLayers(background, foreground, BlendType.DARKEN) +``` + +![Darken](test/data/darken_expected.png) + +### Screen + +```python +blendLayers(background, foreground, BlendType.SCREEN) +``` + +![Screen](test/data/screen_expected.png) + +### XOR + +```python +blendLayers(background, foreground, BlendType.XOR) +``` + +![XOR](test/data/xor_expected.png) + +### SoftLight + +```python +blendLayers(background, foreground, BlendType.SOFTLIGHT) +``` + +![SoftLight](test/data/softlight_expected.png) + +### HardLight + +```python +blendLayers(background, foreground, BlendType.HARDLIGHT) +``` + +![HardLight](test/data/hardlight_expected.png) + +### GrainExtract + +```python +blendLayers(background, foreground, BlendType.GRAINEXTRACT) +``` + +![GrainExtract](test/data/grainextract_expected.png) + +### GrainMerge + +```python +blendLayers(background, foreground, BlendType.GRAINMERGE) +``` + +![GrainMerge](test/data/grainmerge_expected.png) + +### Divide + +```python +blendLayers(background, foreground, BlendType.DIVIDE) +``` + +![Divide](test/data/divide_expected.png) + +### Hue + +```python +blendLayers(background, foreground, BlendType.HUE) +``` + +![Hue](test/data/hue_expected.png) + +### Saturation + +```python +blendLayers(background, foreground, BlendType.SATURATION) +``` + +![Saturation](test/data/saturation_expected.png) + +### Colour + +```python +blendLayers(background, foreground, BlendType.COLOUR) +``` + +![Colour](test/data/colour_expected.png) + +### Luminosity + +```python +blendLayers(background, foreground, BlendType.LUMINOSITY) +``` + +![Luminosity](test/data/luminosity_expected.png) + +### PinLight + +```python +blendLayers(background, foreground, BlendType.PINLIGHT) +``` + +![PinLight](test/data/pinlight_expected.png) + +### VividLight + +```python +blendLayers(background, foreground, BlendType.VIVIDLIGHT) +``` + +![VividLight](test/data/vividlight_expected.png) + +### Exclusion + +```python +blendLayers(background, foreground, BlendType.EXCLUSION) +``` + +![Exclusion](test/data/exclusion_expected.png) + +### DestIn + +```python +blendLayers(background, foreground, BlendType.DESTIN) +``` + +![Exclusion](test/data/destin_expected.png) + +### DestOut + +```python +blendLayers(background, foreground, BlendType.DESTOUT) +``` + +![Exclusion](test/data/destout_expected.png) + +### DestAtop + +```python +blendLayers(background, foreground, BlendType.DESTATOP) +``` + +![Exclusion](test/data/destatop_expected.png) + +### SrcAtop + +```python +blendLayers(background, foreground, BlendType.SRCATOP) +``` + +![Exclusion](test/data/srcatop_expected.png) + +## Documentation + +See the [Docs](/DOCS/) for more information. + +## Install With PIP + +```python +pip install blendmodes +``` + +Head to https://pypi.org/project/blendmodes/ for more info + +## Language information + +### Built for + +This program has been written for Python versions 3.7 - 3.10 and has been tested with both 3.7 and +3.10 + +## Install Python on Windows + +### Chocolatey + +```powershell +choco install python +``` + +### Windows - Python.org + +To install Python, go to https://www.python.org/downloads/windows/ and download the latest +version. + +## Install Python on Linux + +### Apt + +```bash +sudo apt install python3.x +``` + +### Dnf + +```bash +sudo dnf install python3.x +``` + +## Install Python on MacOS + +### Homebrew + +```bash +brew install python@3.x +``` + +### MacOS - Python.org + +To install Python, go to https://www.python.org/downloads/macos/ and download the latest +version. + +## How to run + +### Windows + +- Module + `py -3.x -m [module]` or `[module]` (if module installs a script) + +- File + `py -3.x [file]` or `./[file]` + +### Linux/ MacOS + +- Module + `python3.x -m [module]` or `[module]` (if module installs a script) + +- File + `python3.x [file]` or `./[file]` + +## Download Project + +### Clone + +#### Using The Command Line + +1. Press the Clone or download button in the top right +2. Copy the URL (link) +3. Open the command line and change directory to where you wish to +clone to +4. Type 'git clone' followed by URL in step 2 + + ```bash + git clone https://github.com/FHPythonUtils/BlendModes + ``` + +More information can be found at +https://help.github.com/en/articles/cloning-a-repository + +#### Using GitHub Desktop + +1. Press the Clone or download button in the top right +2. Click open in desktop +3. Choose the path for where you want and click Clone + +More information can be found at +https://help.github.com/en/desktop/contributing-to-projects/cloning-a-repository-from-github-to-github-desktop + +### Download Zip File + +1. Download this GitHub repository +2. Extract the zip archive +3. Copy/ move to the desired location + +## Community Files + +### Licence + +MIT License +(See the [LICENSE](/LICENSE.md) for more information.) + +### Changelog + +See the [Changelog](/CHANGELOG.md) for more information. + +### Code of Conduct + +Online communities include people from many backgrounds. The *Project* +contributors are committed to providing a friendly, safe and welcoming +environment for all. Please see the +[Code of Conduct](https://github.com/FHPythonUtils/.github/blob/master/CODE_OF_CONDUCT.md) + for more information. + +### Contributing + +Contributions are welcome, please see the +[Contributing Guidelines](https://github.com/FHPythonUtils/.github/blob/master/CONTRIBUTING.md) +for more information. + +### Security + +Thank you for improving the security of the project, please see the +[Security Policy](https://github.com/FHPythonUtils/.github/blob/master/SECURITY.md) +for more information. + +### Support + +Thank you for using this project, I hope it is of use to you. Please be aware that +those involved with the project often do so for fun along with other commitments +(such as work, family, etc). Please see the +[Support Policy](https://github.com/FHPythonUtils/.github/blob/master/SUPPORT.md) +for more information. + +### Rationale + +The rationale acts as a guide to various processes regarding projects such as +the versioning scheme and the programming styles used. Please see the +[Rationale](https://github.com/FHPythonUtils/.github/blob/master/RATIONALE.md) +for more information. + + +%package help +Summary: Development documents and examples for blendmodes +Provides: python3-blendmodes-doc +%description help +[![GitHub top language](https://img.shields.io/github/languages/top/FHPythonUtils/BlendModes.svg?style=for-the-badge)](../../) +[![Repository size](https://img.shields.io/github/repo-size/FHPythonUtils/BlendModes.svg?style=for-the-badge)](../../) +[![Issues](https://img.shields.io/github/issues/FHPythonUtils/BlendModes.svg?style=for-the-badge)](../../issues) +[![License](https://img.shields.io/github/license/FHPythonUtils/BlendModes.svg?style=for-the-badge)](/LICENSE.md) +[![Commit activity](https://img.shields.io/github/commit-activity/m/FHPythonUtils/BlendModes.svg?style=for-the-badge)](../../commits/master) +[![Last commit](https://img.shields.io/github/last-commit/FHPythonUtils/BlendModes.svg?style=for-the-badge)](../../commits/master) +[![PyPI Downloads](https://img.shields.io/pypi/dm/blendmodes.svg?style=for-the-badge)](https://pypistats.org/packages/blendmodes) +[![PyPI Total Downloads](https://img.shields.io/badge/dynamic/json?style=for-the-badge&label=total%20downloads&query=%24.total_downloads&url=https%3A%2F%2Fapi.pepy.tech%2Fapi%2Fprojects%2Fblendmodes)](https://pepy.tech/project/blendmodes) +[![PyPI Version](https://img.shields.io/pypi/v/blendmodes.svg?style=for-the-badge)](https://pypi.org/project/blendmodes) + + +# BlendModes + +Project Icon + +Use this module to apply a number of blending modes to a background and +foreground image. + +## Credits + +Credits to: + +### MIT License Copyright (c) 2019 Paul Jewell + +For implementing blending from the Open Raster Image Spec + +### MIT License Copyright (c) 2018 Addison Elliott + +For implementing blending from Paint.NET + +### MIT License Copyright (c) 2017 pashango + +For implementing a number of blending functions used by other popular image +editors + +- [Credits](#credits) + - [MIT License Copyright (c) 2019 Paul Jewell](#mit-license-copyright-c-2019-paul-jewell) + - [MIT License Copyright (c) 2018 Addison Elliott](#mit-license-copyright-c-2018-addison-elliott) + - [MIT License Copyright (c) 2017 pashango](#mit-license-copyright-c-2017-pashango) +- [Examples](#examples) + - [Normal](#normal) + - [Multiply](#multiply) + - [Additive](#additive) + - [ColourBurn](#colourburn) + - [ColourDodge](#colourdodge) + - [Reflect](#reflect) + - [Glow](#glow) + - [Overlay](#overlay) + - [Difference](#difference) + - [Negation](#negation) + - [Lighten](#lighten) + - [Darken](#darken) + - [Screen](#screen) + - [XOR](#xor) + - [SoftLight](#softlight) + - [HardLight](#hardlight) + - [GrainExtract](#grainextract) + - [GrainMerge](#grainmerge) + - [Divide](#divide) + - [Hue](#hue) + - [Saturation](#saturation) + - [Colour](#colour) + - [Luminosity](#luminosity) + - [PinLight](#pinlight) + - [VividLight](#vividlight) + - [Exclusion](#exclusion) + - [DestIn](#destin) + - [DestOut](#destout) + - [DestAtop](#destatop) + - [SrcAtop](#srcatop) +- [Documentation](#documentation) +- [Install With PIP](#install-with-pip) +- [Language information](#language-information) + - [Built for](#built-for) +- [Install Python on Windows](#install-python-on-windows) + - [Chocolatey](#chocolatey) + - [Windows - Python.org](#windows---pythonorg) +- [Install Python on Linux](#install-python-on-linux) + - [Apt](#apt) + - [Dnf](#dnf) +- [Install Python on MacOS](#install-python-on-macos) + - [Homebrew](#homebrew) + - [MacOS - Python.org](#macos---pythonorg) +- [How to run](#how-to-run) + - [Windows](#windows) + - [Linux/ MacOS](#linux-macos) +- [Download Project](#download-project) + - [Clone](#clone) + - [Using The Command Line](#using-the-command-line) + - [Using GitHub Desktop](#using-github-desktop) + - [Download Zip File](#download-zip-file) +- [Community Files](#community-files) + - [Licence](#licence) + - [Changelog](#changelog) + - [Code of Conduct](#code-of-conduct) + - [Contributing](#contributing) + - [Security](#security) + - [Support](#support) + - [Rationale](#rationale) + +## Examples + +Be sure to include the following for the functions below + +```python +from blendmodes.blend import blendLayers, BlendType + +background = Image.open(THISDIR + "/background.png") +foreground = Image.open(THISDIR + "/foreground.png") +``` + +### Normal + +```python +blendLayers(background, foreground, BlendType.NORMAL) +``` + +![Normal](test/data/normal_expected.png) + +### Multiply + +```python +blendLayers(background, foreground, BlendType.MULTIPLY) +``` + +![Multiply](test/data/multiply_expected.png) + +### Additive + +```python +blendLayers(background, foreground, BlendType.ADDITIVE) +``` + +![Additive](test/data/additive_expected.png) + +### ColourBurn + +```python +blendLayers(background, foreground, BlendType.COLOURBURN) +``` + +![ColourBurn](test/data/colourburn_expected.png) + +### ColourDodge + +```python +blendLayers(background, foreground, BlendType.COLOURDODGE) +``` + +![ColourDodge](test/data/colourdodge_expected.png) + +### Reflect + +```python +blendLayers(background, foreground, BlendType.REFLECT) +``` + +![Reflect](test/data/reflect_expected.png) + +### Glow + +```python +blendLayers(background, foreground, BlendType.GLOW) +``` + +![Glow](test/data/glow_expected.png) + +### Overlay + +```python +blendLayers(background, foreground, BlendType.OVERLAY) +``` + +![Overlay](test/data/overlay_expected.png) + +### Difference + +```python +blendLayers(background, foreground, BlendType.DIFFERENCE) +``` + +![Difference](test/data/difference_expected.png) + +### Negation + +```python +blendLayers(background, foreground, BlendType.NEGATION) +``` + +![Negation](test/data/negation_expected.png) + +### Lighten + +```python +blendLayers(background, foreground, BlendType.LIGHTEN) +``` + +![Lighten](test/data/lighten_expected.png) + +### Darken + +```python +blendLayers(background, foreground, BlendType.DARKEN) +``` + +![Darken](test/data/darken_expected.png) + +### Screen + +```python +blendLayers(background, foreground, BlendType.SCREEN) +``` + +![Screen](test/data/screen_expected.png) + +### XOR + +```python +blendLayers(background, foreground, BlendType.XOR) +``` + +![XOR](test/data/xor_expected.png) + +### SoftLight + +```python +blendLayers(background, foreground, BlendType.SOFTLIGHT) +``` + +![SoftLight](test/data/softlight_expected.png) + +### HardLight + +```python +blendLayers(background, foreground, BlendType.HARDLIGHT) +``` + +![HardLight](test/data/hardlight_expected.png) + +### GrainExtract + +```python +blendLayers(background, foreground, BlendType.GRAINEXTRACT) +``` + +![GrainExtract](test/data/grainextract_expected.png) + +### GrainMerge + +```python +blendLayers(background, foreground, BlendType.GRAINMERGE) +``` + +![GrainMerge](test/data/grainmerge_expected.png) + +### Divide + +```python +blendLayers(background, foreground, BlendType.DIVIDE) +``` + +![Divide](test/data/divide_expected.png) + +### Hue + +```python +blendLayers(background, foreground, BlendType.HUE) +``` + +![Hue](test/data/hue_expected.png) + +### Saturation + +```python +blendLayers(background, foreground, BlendType.SATURATION) +``` + +![Saturation](test/data/saturation_expected.png) + +### Colour + +```python +blendLayers(background, foreground, BlendType.COLOUR) +``` + +![Colour](test/data/colour_expected.png) + +### Luminosity + +```python +blendLayers(background, foreground, BlendType.LUMINOSITY) +``` + +![Luminosity](test/data/luminosity_expected.png) + +### PinLight + +```python +blendLayers(background, foreground, BlendType.PINLIGHT) +``` + +![PinLight](test/data/pinlight_expected.png) + +### VividLight + +```python +blendLayers(background, foreground, BlendType.VIVIDLIGHT) +``` + +![VividLight](test/data/vividlight_expected.png) + +### Exclusion + +```python +blendLayers(background, foreground, BlendType.EXCLUSION) +``` + +![Exclusion](test/data/exclusion_expected.png) + +### DestIn + +```python +blendLayers(background, foreground, BlendType.DESTIN) +``` + +![Exclusion](test/data/destin_expected.png) + +### DestOut + +```python +blendLayers(background, foreground, BlendType.DESTOUT) +``` + +![Exclusion](test/data/destout_expected.png) + +### DestAtop + +```python +blendLayers(background, foreground, BlendType.DESTATOP) +``` + +![Exclusion](test/data/destatop_expected.png) + +### SrcAtop + +```python +blendLayers(background, foreground, BlendType.SRCATOP) +``` + +![Exclusion](test/data/srcatop_expected.png) + +## Documentation + +See the [Docs](/DOCS/) for more information. + +## Install With PIP + +```python +pip install blendmodes +``` + +Head to https://pypi.org/project/blendmodes/ for more info + +## Language information + +### Built for + +This program has been written for Python versions 3.7 - 3.10 and has been tested with both 3.7 and +3.10 + +## Install Python on Windows + +### Chocolatey + +```powershell +choco install python +``` + +### Windows - Python.org + +To install Python, go to https://www.python.org/downloads/windows/ and download the latest +version. + +## Install Python on Linux + +### Apt + +```bash +sudo apt install python3.x +``` + +### Dnf + +```bash +sudo dnf install python3.x +``` + +## Install Python on MacOS + +### Homebrew + +```bash +brew install python@3.x +``` + +### MacOS - Python.org + +To install Python, go to https://www.python.org/downloads/macos/ and download the latest +version. + +## How to run + +### Windows + +- Module + `py -3.x -m [module]` or `[module]` (if module installs a script) + +- File + `py -3.x [file]` or `./[file]` + +### Linux/ MacOS + +- Module + `python3.x -m [module]` or `[module]` (if module installs a script) + +- File + `python3.x [file]` or `./[file]` + +## Download Project + +### Clone + +#### Using The Command Line + +1. Press the Clone or download button in the top right +2. Copy the URL (link) +3. Open the command line and change directory to where you wish to +clone to +4. Type 'git clone' followed by URL in step 2 + + ```bash + git clone https://github.com/FHPythonUtils/BlendModes + ``` + +More information can be found at +https://help.github.com/en/articles/cloning-a-repository + +#### Using GitHub Desktop + +1. Press the Clone or download button in the top right +2. Click open in desktop +3. Choose the path for where you want and click Clone + +More information can be found at +https://help.github.com/en/desktop/contributing-to-projects/cloning-a-repository-from-github-to-github-desktop + +### Download Zip File + +1. Download this GitHub repository +2. Extract the zip archive +3. Copy/ move to the desired location + +## Community Files + +### Licence + +MIT License +(See the [LICENSE](/LICENSE.md) for more information.) + +### Changelog + +See the [Changelog](/CHANGELOG.md) for more information. + +### Code of Conduct + +Online communities include people from many backgrounds. The *Project* +contributors are committed to providing a friendly, safe and welcoming +environment for all. Please see the +[Code of Conduct](https://github.com/FHPythonUtils/.github/blob/master/CODE_OF_CONDUCT.md) + for more information. + +### Contributing + +Contributions are welcome, please see the +[Contributing Guidelines](https://github.com/FHPythonUtils/.github/blob/master/CONTRIBUTING.md) +for more information. + +### Security + +Thank you for improving the security of the project, please see the +[Security Policy](https://github.com/FHPythonUtils/.github/blob/master/SECURITY.md) +for more information. + +### Support + +Thank you for using this project, I hope it is of use to you. Please be aware that +those involved with the project often do so for fun along with other commitments +(such as work, family, etc). Please see the +[Support Policy](https://github.com/FHPythonUtils/.github/blob/master/SUPPORT.md) +for more information. + +### Rationale + +The rationale acts as a guide to various processes regarding projects such as +the versioning scheme and the programming styles used. Please see the +[Rationale](https://github.com/FHPythonUtils/.github/blob/master/RATIONALE.md) +for more information. + + +%prep +%autosetup -n blendmodes-2022 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-blendmodes -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Mon May 15 2023 Python_Bot - 2022-1 +- Package Spec generated diff --git a/sources b/sources new file mode 100644 index 0000000..f84469c --- /dev/null +++ b/sources @@ -0,0 +1 @@ +e741b487f65e6ef94e273e7f71fdbe14 blendmodes-2022.tar.gz -- cgit v1.2.3