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
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
Simple Python / ImageMagick script to package images into WAD3s for use as GoldSrc textures.

WADs Out For [The] Ladies Simple Python / ImageMagick script to package images into WAD3s for use as GoldSrc textures. Development mostly focused on L

5 Apr 09, 2022
Python avatar generator for absolute nerds

pagan Welcome to the Python Avatar Generator for Absolute Nerds. Current version: 0.4.3 View the change history here. Remember those good old days whe

David Bothe 280 Dec 16, 2022
Simple utility to tinker with OPlus images

OPlus image utilities Prerequisites Linux running kernel 5.4 or up (check with uname -r) Image rebuilding Used to rebuild read-only erofs images into

Wiley Lau 15 Dec 28, 2022
This will help to read QR codes using Raspberry Pi and Pi Camera

Raspberry-Pi-Generate-and-Read-QR-code This will help to read QR codes using Raspberry Pi and Pi Camera Install the required libraries first in your T

Raspberry_Pi Pakistan 2 Nov 06, 2021
Convert any image into greyscale ASCII art.

Image-to-ASCII Convert any image into greyscale ASCII art.

Ben Smith 12 Jan 15, 2022
:rocket: A minimalist comic reader

Pynocchio A minimalist comic reader Features | Installation | Contributing | Credits This screenshots contains a page of the webcomic Pepper&Carrot by

Michell Stuttgart 73 Aug 02, 2022
The following program is used to swap the faces from two images.

Face-Swapping The following program is used to swap the faces from two images. In today's world deep fake technology has become really popular . As a

1 Jan 19, 2022
EmbedToolV2 - 2.0 Version of DraKenCodeZ/ImageEmbedTool

EmbedToolV2 - 2.0 Version of DraKenCodeZ/ImageEmbedTool

DraKenCodeZ 1 Dec 07, 2021
A 3D structural engineering finite element library for Python.

An easy to use elastic 3D structural engineering finite element analysis library for Python.

Craig 220 Dec 27, 2022
Panel Competition Image Generator

Panel Competition Image Generator This project was build by a member of the NFH community and is open for everyone who wants to try it. Relevant links

Juliano Mendieta 1 Oct 22, 2021
PSD (Photoshop, Krita, Gimp...) -> Godot.

limage v0.2.2 Features Getting Started Tags Settings Todo Customizer Changes Solutions WARNING: Requires Python to be installed PSD (Photoshop, Krita,

21 Nov 10, 2022
Detecting haze image with hazer.

hazer-py Detecting haze image with hazer. What is hazer Hazer is a lib for getting "haze degree". This repository is python version of hazer: https://

Joey777210 2 Dec 27, 2021
Avatar Generator Python

This is a simple avatar generator project which uses your webcam to take pictures and saves five different types of your images into your device including the original image.

Faisal Ahmed 3 Jan 23, 2022
Art directed cropping, useful for responsive images

Art direction sets a focal point and can be used when you need multiple copies of the same Image but also in in different proportions.

Daniel 1 Aug 16, 2022
A simple programming language for manipulating images.

f-stop A simple programming language for manipulating images. Examples OPEN "image.png" AS image RESIZE image (300, 300) SAVE image "out.jpg" CLOSE im

F-Stop 6 Oct 27, 2022
Command line utility for converting images to seamless tiles

img2texture Command line utility for converting images to seamless tiles. The resulting tiles can be used as textures in games, compositing and 3D mod

Artёm IG 24 Dec 26, 2022
This piece of code is a User Welcomer with Image Manipulation using Python and Pillow (PIL).

This piece of code is a User Welcomer with Image Manipulation using Python and Pillow (PIL).

Bero 4 Jan 11, 2022
🎨 Generate and change color-schemes on the fly.

Generate and change color-schemes on the fly. Pywal is a tool that generates a color palette from the dominant colors in an image. It then applies the

dylan 6.9k Jan 03, 2023
👷 Build images with images

👷 Build images with images. About Tiler is a tool to create an image using all kinds of other smaller images (tiles). It is different from other mosa

5.5k Jan 03, 2023