MetaStalk is a tool that can be used to generate graphs from the metadata of JPEG, TIFF, and HEIC images

Overview

MetaStalk

GitHub Gitlab pipeline status (branch) PyPI - Python Version PyPI Code style: black

Maintainability codecov Codacy Badge

Scrutinizer Code Quality Language grade: Python

About

MetaStalk is a tool that can be used to generate graphs from the metadata of JPEG, TIFF, and HEIC images, which are tested. More formats are supported but untested. It currently creates graphs for:

  • GPS coordinates (map)
  • Focal Length, Camera model, Camera manufacturer, Producer information (Pie Chart)
  • Timestamp information (Chart)

Examples photos from ianare/exif-samples, exiftool, drewmpales/metadata-extractor-images.

All development is done on GitLab and mirrored to GitHub. Please read contributing.md for development.

Metastalk is supported and tested on the following Python versions:

  • 3.6
  • 3.7
  • 3.8
  • 3.9

How to use

MetaStalk is available as a package on pypi.org or you can do a source install.

usage: MetaStalk [-h] [-a] [-d] [-e {pdf,svg,webp,jpeg,png,html,html_offline}]
                 [--export-only] [--no-open] [-o OUTPUT] [-t] [-v]
                 [files [files ...]]

Tool to graph image metadata.

positional arguments:
  files                 Path of photos to check.

optional arguments:
  -h, --help            show this help message and exit
  -a, --alphabetic      Sorts charts in alphabetical order rather than the
                        default order
  -d, --debug           Sets logging level to DEBUG.
  -e {pdf,svg,webp,jpeg,png,html,html_offline}, --export {pdf,svg,webp,jpeg,png,html,html_offline}
                        Exports the graphs rather than all on one web page
  --export-only         Makes it so that MetaStalk only export
  --no-open             Will only start the server and not open the browser to
                        view it
  -o OUTPUT, --output OUTPUT
                        The name of the directory to output exports to. Will
                        be created if it does not exist. Defaults to
                        metastalk_exports.
  -t, --test            Does not show the graphs at the end.
  -v, --verbose         Sets logging level to INFO

Extras

MetaStalk has extra installs available for an increased feature set.

  • metastalk[image] Allows for exporting charts to images in png, jpeg, webp, svg and pdf formats.

PyPi Install (Recommended)

pip install metastalk
metastalk <Path to files>
#i.e. metastalk ./ExamplePhotos/

Source Install

git clone https://gitlab.com/Cyb3r-Jak3/metastalk
cd metastalk
setup.py install
metastalk <Path to files>
#i.e. metastalk ./ExamplePhotos/

Docker

There are docker images available to run Metastalk. The image only process and opens the webpage. It does not offer the option to export the results.

Images are available from both DockerHub and GitLab.

  • cyb3rjak3/metastalk:latest
  • registry.gitlab.com/cyb3r-jak3/metastalk:latest

To run: docker run -it -v $(pwd)/ExamplePhotos:/photo:ro cyb3rjak3/metastalk

Wait until the photos have been process then open your browser to localhost:8052

Disclaimer

This is for educational/proof of concept purposes only. What you do with MetaStalk is your responsibility.

DeepSource DeepSource

You might also like...
missing-pixel-filler is a python package that, given images that may contain missing data regions (like satellite imagery with swath gaps), returns these images with the regions filled.
missing-pixel-filler is a python package that, given images that may contain missing data regions (like satellite imagery with swath gaps), returns these images with the regions filled.

Missing Pixel Filler This is the official code repository for the Missing Pixel Filler by SpaceML. missing-pixel-filler is a python package that, give

Python Image Morpher (PIM) is a program that can take two images and blend them to whatever extent or precision that you like
Python Image Morpher (PIM) is a program that can take two images and blend them to whatever extent or precision that you like

Python Image Morpher (PIM) is a program that can take two images and blend them to whatever extent or precision that you like! It is designed to emulate some of Python's OpenCV image processing from scratch without reference.

Generates images of calendar month tables and can paste them onto suitable photos.
Generates images of calendar month tables and can paste them onto suitable photos.

📆 calendizer README Generates images of calendar month tables and can paste them onto suitable photos. A quick way to make your own calendar for prin

Raven is a tool written in Python3 allowing you to generate an unique image with some text.
Raven is a tool written in Python3 allowing you to generate an unique image with some text.

🐦 Raven is a tool written in Python3 allowing you to generate an unique image with some text. It does it by searching the text on Google, do

A GUI-based (PyQt5) tool used to design 2D linkage mechanism.
A GUI-based (PyQt5) tool used to design 2D linkage mechanism.

Pyslvs-UI A GUI-based (PyQt5) tool used to design 2D linkage mechanism. Planar Linkages Simulation Python-Solvespace: Kernel from Solvespace with Cyth

Rembg is a tool to remove images background.
Rembg is a tool to remove images background.

Rembg is a tool to remove images background.

A tool for hiding data inside of images

Stegenography-tool a tool for hiding data inside of images Quick test: do python steg-encode.py test/message.txt test/covid19.png to generate the test

Png2Jpg tool will help you convert from png image format to jpg images format.

PNG 2 JPG All codes assume running from root directory. Please update the sys path at the beginning of the codes before running. Over View Png2Jpg too

A simple image-level annotation tool supporting multi-channel images for napari.
A simple image-level annotation tool supporting multi-channel images for napari.

napari-labelimg4classification A simple image-level annotation tool supporting multi-channel images for napari. This napari plugin was generated with

Releases(v2.2.1)
  • v2.2.1(May 11, 2020)

  • v2.2.post1(May 8, 2020)

    v2.2.0 - 2020-05-08

    Added

    • Sub-directory support.
    • HEIC and HEIF file support.
    • Added WebP, JPEG image export options.

    Changed

    • Moved all requirements files to a requirements directory.
    • Moved to exifread from hachoir to enable more options and heic support.
    • HTML exports uses cdn for scripts.
    • Removed some lines from coverage checks as they can no be processed.
    Source code(tar.gz)
    Source code(zip)
    MetaStalk-2.2.post1-py3-none-any.whl(21.82 KB)
    MetaStalk-2.2.post1.linux-x86_64.tar.gz(19.90 KB)
    MetaStalk-2.2.post1.tar.gz(9.80 KB)
  • v2.1.0(May 6, 2020)

    [v2.1.0]- 2020-05-06

    Added

    • Ability to pass both directories and individual files.
    • Unittests for testing.
    • Footer for run time.
    • Export feature.
    • Added metastalk dev and image install.
    • Codacy
    • Two new arguments --no-open and --alphabetic.
      • --no-open will make it so a new browser tab is not opened.
      • --alphabetic will sort all the charts alphabetically.

    Changed

    • Created MetaStalk Class.
    • All titles for charts are centered.
    Source code(tar.gz)
    Source code(zip)
    MetaStalk-2.1.0-py3-none-any.whl(19.52 KB)
    MetaStalk-2.1.0.tar.gz(8.06 KB)
  • v2.0.0(May 5, 2020)

    [v2.0.0] - 2020-05-03

    Rename to MetaStalk

    Rename to MetaStalk to create PyPi package and a lot backend development changes.

    Added

    • License scanning
    • Codecov
    • Pipfile and Pipfile.lock for pipenv.
    • Added .gitlab folder for service desk.
    • setup.py for pypi.

    Changed

    • Reverted dependency scanner to default template.
    • Name from PyStalk to MetaStalk as PyStalk is taken.
    • Moved all files to MetaStalk directory.
    • Moved ExamplePhotos to own directory.
    • License scanning now only on master branch and tags.
    • Can only run on from package.

    Removed

    • Dropped support for Python 3.5 as hachoir does not support it.
    • Dropped using pipenv for pipeline.
    • Markdownlint check in codeclimate.
    Source code(tar.gz)
    Source code(zip)
  • v1.3.3(Jan 10, 2020)

    [v1.3.3] - 2020-01-10

    Changed

    • Split directory searching and individual file searching to their own functions.
    • Dependency scanning only takes place for master branch and scheduled runs.

    Removed

    • fixme plugin for codeclimate

    [v1.3.2] - 2019-12-21

    Changes made to testing and PyStalk. No new functionality added.

    Source code(tar.gz)
    Source code(zip)
  • v1.3.2(Dec 21, 2019)

    [v1.3.2] - 2019-12-21

    Changes made to testing and PyStalk. No new functionality added.

    Added

    • Added time reporting for how long it took.

    Changed

    • Added multiple coverage run.
    • Readme now used LF line endings.
    • Modified tests run on code climate.
    • Split up the main function in PyStalk to setup and run.
    • Changed linting so that it happens before for all python versions.
    Source code(tar.gz)
    Source code(zip)
  • v1.3.1(Dec 16, 2019)

    [v1.3.1] - 2019-12-16

    Changed

    • Changed so code coverage only run on python 3.7
    • Removed random from code climate
    • Updated Datetime to remove duplicate code.
    • Changed DateTime date_time
    Source code(tar.gz)
    Source code(zip)
  • v1.2(Dec 5, 2019)

    [v1.2] - 2019-12-04

    Added

    • Added 5 more example photos.
    • Artifact in build stage to view logs, bandit and coverage reports.
    • Added flash analyzer to show levels of flash.
    • Added Software and Focal charts.
    • Deepsource tracking.

    Changed

    • Made the logger wipe old log file.
    • Better try/expect for GPSCheck and DateTime.
    • Fixed Text Align.
    • Renamed Pylint rc file to correct name for building.
    • Title location for Model chart.
    • Fixed module descriptions.
    • Updated app title.
    • Updated app header.

    Removed

    • Removed Static Testing.
    Source code(tar.gz)
    Source code(zip)
  • v1.1(Dec 5, 2019)

    Added

    • Try/except in app.py for dash for a clean exit
    • Logging feature which gets created with the logger in utils
    • Custom log levels arguments
    • Favicon in the assets folder
    • Modules folders contain all graphing features.
      • Easier for future development
    • The table that reports the GPS timestamp

    Changed

    • Made plots a dictionary to improve graph name
    • Moved Geo title to initial figure
    • Changed web browser open to localhost to deal with HTTP Everywhere.
    • Added all extra python code to utils directory
    • Added option to disable invalid name in pylint rcfile
    • Moved, GPS_Chart, Model_Chart, and Stats to modules
    • Added development branch coverage
    • Moved Photo stats to the top
    • Renamed app.py to web.py
    • Changed GPS check to seeing if there is latitude
    Source code(tar.gz)
    Source code(zip)
Owner
Cyb3r Jak3
Computer Networking & Cyber Security with a passion for Python. Got a cool idea for a project? Reach out to me!
Cyb3r Jak3
QR code python application which can read(decode) and generate(encode) QR codes.

QR Code Application This is a basic QR Code application. Using this application you can generate QR code for you text/links. Using this application yo

Atharva Parkhe 1 Aug 09, 2022
Music Thumbnail Maker

Music Thumbnail Installing pip install TMFrame

krypton 4 Jan 28, 2022
👾 Python project to help you convert any image into a pixel art.

👾 Pixel Art Generator Python project to help you convert any image into a pixel art. ⚙️ Developer's Guide Things you need to get started with this co

Atul Anand 6 Dec 14, 2022
Polyfoto - Create image mosaics.

Polyfoto Create image mosaics. Showcase "Before and After Science" by Brian Eno "Scott 3" by Scott Walker Installation Clone this repository to your l

Shane Drabing 149 Dec 25, 2022
Python-fu-cartoonify - GIMP plug-in to turn a photo into a cartoon.

python-fu-cartoonify GIMP plug-in to turn a photo into a cartoon. Preview Installation Copy python-fu-cartoonify.py into the plug-in folder listed und

Pascal Reitermann 6 Aug 05, 2022
Advance Image Steganography

Chaya Advance Image Steganography Using LSB-LPS + AES-256-GCM + FLIF Right To Privacy! United Nations Declaration of Human Rights (UDHR) 1948, Article

XeroHack 113 Dec 02, 2022
Python Interface of P3D

pyp3d 介绍: pyp3d是一个可在python上使用的工具包,它提供了一种可使用python脚本驱动创建模型的方法,为三维建模提供了全新的思路。 pyp3d中定义了一系列建模相关的必要的数据类型,例如球体、圆锥台、四棱锥台、 拉伸体、圆角管等几何体,pyp3d还提供了许多函数来实现放置集合体、

20 Sep 07, 2022
ModernGL is a python wrapper over OpenGL 3.3+ core

ModernGL is a python wrapper over OpenGL 3.3+ core that simplifies the creation of simple graphics applications like scientific simulations, games or user interface

ModernGL 1.4k Jan 01, 2023
This tool allows the user to convert a 16 by 16 image into a list with numbers representing an object/character.

Room Formatter This tool allows the user to convert a 16 by 16 image into a list with numbers representing an object/character. There is cur

Thomas Landstra 1 Nov 13, 2021
A proof-of-concept implementation of a parallel-decodable PNG format

mtpng A parallelized PNG encoder in Rust by Brion Vibber [email protected] Backgrou

Brion Vibber 193 Dec 16, 2022
Django helper application to easily and non-destructively crop arbitrarily large images in admin and frontend.

django-image-cropping django-image-cropping is an app for cropping uploaded images via Django's admin backend using Jcrop. Screenshot: django-image-cr

Jonas und der Wolf GmbH 546 Jan 03, 2023
thumbor is an open-source photo thumbnail service by globo.com

Survey If you use thumbor, please take 1 minute and answer this survey? It's only 2 questions and one is multiple choice!!! thumbor is a smart imaging

Thumbor (by @globocom) 9.3k Dec 31, 2022
Simple mathematical operations on image, point and surface layers.

napari-math This package provides a GUI interfrace for simple mathematical operations on image, point and surface layers. addition subtraction multipl

Zach Marin 2 Jan 18, 2022
An async Python library to automate solving ReCAPTCHA v2 by audio using Playwright.

Playwright nonoCAPTCHA An async Python library to automate solving ReCAPTCHA v2 by audio using Playwright. Disclaimer This project is for educational

Michael Mooney 69 Dec 28, 2022
A minimal, standalone viewer for 3D animations stored as stop-motion sequences of individual .obj mesh files.

ObjSequenceViewer V0.5 A minimal, standalone viewer for 3D animations stored as stop-motion sequences of individual .obj mesh files. Installation: pip

csmailis 2 Aug 04, 2022
Png-to-stl - Converts PNG and text to SVG, and then extrudes that based on parameters

have ansible installed locally run ansible-playbook setup_application.yml this sets up directories, installs system packages, and sets up python envir

1 Jan 03, 2022
A pure python implementation of the GIMP XCF image format. Use this to interact with GIMP image formats

Pure Python implementation of the GIMP image formats (.xcf projects as well as brushes, patterns, etc)

FHPyhtonUtils 8 Dec 30, 2022
Paper backup of files using QR codes

Generate paper backups for Linux. Currently command-linux Linux only. Takes any file, and outputs a "paper backup": a printable black-and-white pdf fu

Zachary Vance 27 Dec 28, 2022
Computer art based on joining transparent images

Computer Art There is no must in art because art is free. Introduction The following tutorial exaplains how to generate computer art based on a series

Computer Art 12 Jul 30, 2022
Seeks to remove text from an image in a convincing way.

Text-Removal This is a Computer Vision project that seeks to successfully remove text from an image by covering the text areas in a convincing way. He

6 Nov 22, 2022