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
Repair broken bookmarks to referenced files in Apple Photos

Repair Apple Photos Bookmarks Work in progress to repair file location bookmarks in Apple Photos. Background Starting in macOS 10.15/Catalina, photos

Rhet Turnbull 10 Nov 03, 2022
Qt based ebook reader

Qt based ebook reader Currently supports: pdf epub djvu fb2 mobi azw / azw3 / azw4 cbr / cbz md Contribute Paypal Bitcoin: 17jaxj26vFJNqQ2hEVerbBV5fpT

1.4k Dec 26, 2022
Python Interface of P3D

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

20 Sep 07, 2022
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

4 May 16, 2022
Extract the ISO 11146 beam size from an image file

laserbeamsize Simple and fast calculation of beam sizes from a single monochrome image based on the ISO 11146 method of variances. Some effort has bee

Scott Prahl 21 Jan 06, 2023
A Icon Maker GUI Made - Convert your image into icon ( .ico format ).

Icon-Maker-GUI A Icon Maker GUI Made Using Python 3.9.0 . It will take any image and convert it to ICO file, for web site favicon or Windows applicati

Insanecodes 12 Dec 15, 2021
Python Script to generate posters out of the images in directory.

Poster-Maker Python Script to generate posters out of the images in directory. This version is very basic ligthweight code to combine organize images

1 Feb 02, 2022
Convert any image into greyscale ASCII art.

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

Ben Smith 12 Jan 15, 2022
🖼️ Draw Images or GIFs in your terminal

Drawitor Draw Images/GIFs in your terminal. Install pip install drawitor CLI Tool drawitor cat_dancing.gif Library The library is written in a simple

Eliaz Bobadilla 7 Dec 15, 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
LGVL helper script to batch and convert with lvgl offline image converter

script to batch and convert with lvgl offline image converter

Yohann 1 Oct 05, 2022
👷 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
Draw a torus passing through three given points.

PyTorusThreePoints Draw a torus passing through three given points. Usage import numpy as np import pyvista as pv from torus_three_points.main import

2 Nov 19, 2021
PyGram Instagram-like image filters.

PyGram Instagram-like image filters. Usage First, import the client: from filters import * Instanciate a filter and apply it: f = Nashville("image.jp

Ajay Kumar Nagaraj 102 Feb 21, 2022
Image Processing - Make noise images clean

影像處理-影像降躁化(去躁化) (Image Processing - Make Noise Images Clean) 得力於電腦效能的大幅提升以及GPU的平行運算架構,讓我們能夠更快速且有效地訓練AI,並將AI技術應用於不同領域。本篇將帶給大家的是 「將深度學習應用於影像處理中的影像降躁化 」,

2 Aug 04, 2022
An add to make adding screenshots and copied images to the scene easy

Blender Clipboard to Scene It doesn't work with version 2.93 and higher (I tested it on 2.91 and 2.83) There is an issue with importing the Pillow mod

Mohammad Mehdi Afkhami 3 Dec 29, 2021
A tool for making simple-style text posters or wallpapers with high resolution.

PurePoster PurePoster is a fancy tool for making arbitrary-resolution, simple-style posters or wallpapers with text in center. Functionality PurePoste

Renyang Guan 4 Jul 09, 2022
Fixed Version Of Blender Low Poly Rock Generator For Blender 3.0.0

Blender (3.0.0) - Low Poly Rock Generator This is an addon for Blender 3.0.0 to generate low poly rocks. It was based on an addon that unfortunately h

3 Mar 24, 2022
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

luke 2 Nov 02, 2021