Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/hivesolutions/pconvert

Simple PNG conversion tool using libpng
https://github.com/hivesolutions/pconvert

composition image-processing libpng pconvert png-conversion python

Last synced: 3 months ago
JSON representation

Simple PNG conversion tool using libpng

Awesome Lists containing this project

README

        

# [P(NG)Convert](http://pconvert.hive.pt)

Simple PNG conversion tool using [libpng](http://www.libpng.org).

## Build

It should be simple to build the project using `make`. Please note that the project requires both Python and libpng.

```bash
make
make install
```

To build pconvert for a specific system use the `SYS` Makefile variable:

```bash
make SYS=darwin
```

It's also possible to build the Python extension and install in a local machine.

```bash
python setup.py install
```

## Python Methods

### `blend_images`

| Argument | Type | Mandatory | Default | Description |
| ----------- | ------ | --------- | ---------------- | ------------------------------------------------------------- |
| bottom_path | `str` | `true` | - | The path to the bottom image. |
| top_path | `str` | `true` | - | The path to the top image. |
| target_path | `str` | `true` | - | The path of the target (resulting) image. |
| algorithm | `str` | `false` | `multiplicative` | The blending algorithm to be used. |
| is_inline | `bool` | `false` | `false` | If the inline methods should be used to perform the blending. |

### `blend_multiple`

| Argument | Type | Mandatory | Default | Description |
| ----------- | ------ | --------- | ---------------- | ----------------------------------------------------------------------------- |
| paths | `list` | `true` | - | The sequence of paths of the images to be blended from bottom to top. |
| target_path | `str` | `true` | - | The path of the target (resulting) image. |
| algorithm | `str` | `false` | `multiplicative` | The blending algorithm to be used to blend all images in a pair-wise fashion. |
| algorithms | `list` | `false` | - | The sequence of blending algorithms to use for each blending operation. If defined, `algorithm` will not be used. |
| is_inline | `bool` | `false` | `false` | If the inline methods should be used to perform the blending. |

## Example

Running a simple set of composition can be done using:

```bash
pconvert compose assets/demo/
```

To be able to convert one image into a normalized PNG format use the `convert` command as following:

```bash
pconvert convert assets/demo/tux.png tux.out.png
```

To run a simple benchmark operation (results in `benchmark.txt`) using pconvert use:

```bash
pconvert benchmark assets/demo/
```

## Conan

This package makes use of the [Conan](https://conan.io) (version 1.x) package manager to use run:

```bash
pip install --upgrade "conan<2"
conan install . --build missing
```

It's important to note that the usage of Conan is not mandatory and it's still possible to build P(NG)Convert without it.

## CMake

### Linux & MacOS

```bash
conan install . --build missing
cmake .
make
```

### Windows

```bash
conan install . --build missing
cmake . -DCMAKE_CL_64=1 -DCMAKE_GENERATOR_PLATFORM=x64 -Ax64
msbuild ALL_BUILD.vcxproj /P:Configuration=Release
```

## License

PConvert is currently licensed under the [Apache License, Version 2.0](http://www.apache.org/licenses/).

## Build Automation

[![Build Status](https://app.travis-ci.com/hivesolutions/pconvert.svg?branch=master)](https://travis-ci.com/github/hivesolutions/pconvert)
[![Build Status GitHub](https://github.com/hivesolutions/pconvert/workflows/Main%20Workflow/badge.svg)](https://github.com/hivesolutions/pconvert/actions)
[![Coverage Status](https://coveralls.io/repos/hivesolutions/pconvert/badge.svg?branch=master)](https://coveralls.io/r/hivesolutions/pconvert?branch=master)
[![PyPi Status](https://img.shields.io/pypi/v/pconvert-python.svg)](https://pypi.python.org/pypi/pconvert-python)