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
Digital image process Basic algorithm

These are some basic algorithms that I have implemented by my hands in the process of learning digital image processing, such as mean and median filtering, sharpening algorithms, interpolation scalin

JingYu 2 Nov 03, 2022
Gallery written in Python to manage your photos

GalleryMan Gallery written in Python to manage your photos Installation

Asian Cat 24 Dec 18, 2022
Python implementation of image filters (such as brightness, contrast, saturation, etc.)

PyPhotoshop Python implementation of image filters Use Python to adjust brightness and contrast, add blur, and detect edges! Follow along tutorial: ht

Kylie 87 Dec 15, 2022
A functional and efficient python implementation of the 3D version of Maxwell's equations

py-maxwell-fdfd Solving Maxwell's equations via A python implementation of the 3D curl-curl E-field equations. This code contains additional work to e

Nathan Zhao 12 Dec 11, 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
Clip Bing Maps backgound as RGB geotif image using center-point from vector data of a shapefile and Bing Maps zoom

Clip Bing Maps backgound as RGB geotif image using center-point from vector data of a shapefile and Bing Maps zoom. Also, rasterize shapefile vectors as corresponding label image.

Gounari Olympia 2 Nov 22, 2021
A warping based image translation model focusing on upper body synthesis.

Pose2Img Upper body image synthesis from skeleton(Keypoints). Sub module in the ICCV-2021 paper "Speech Drives Templates: Co-Speech Gesture Synthesis

zhiyh 15 Nov 10, 2022
Converting Images Into Minecraft Houses

Converting Images Into Minecraft Houses In this particular project, we turned a 2D Image into Minecraft pixel art and then scaled it in 3D such that i

Mathias Oliver Valdbjørn Jørgensen 1 Feb 02, 2022
A Gtk based Image Selector with Preview

gtk-image-selector This is an attempt to restore Gtk Image Chooser "lost functionality": displaying an image preview when selecting images... This is

Spiros Georgaras 2 Sep 28, 2022
This projects aim is to simulate flowers(Gerbera Daisy) phyllotaxis.

phyllotaxis This projects aim is to simulate flowers(Gerbera Daisy) phyllotaxis. Take a look at the arrangement of this flower's seeds, this project's

amirsalar 3 Dec 10, 2021
HTML2Image is a lightweight Python package that acts as a wrapper around the headless mode of existing web browsers to generate images from URLs and from HTML+CSS strings or files.

A package acting as a wrapper around the headless mode of existing web browsers to generate images from URLs and from HTML+CSS strings or files.

176 Jan 01, 2023
Transfers a image file(.png) to an Excel file(.xlsx)

Transfers a image file(.png) to an Excel file(.xlsx)

Junu Kwon 7 Feb 11, 2022
Simple Python image processing & automatization project for a simple web based game

What is this? Simple Python image processing & automatization project for a simple web based game Made using only Github Copilot (except the color and

SGeri 2 Aug 15, 2022
Generate different types of random avatars.

avatar-generator Generate different types of random avatars. Requirements Python3 pytorch=1.6 cv2=3.4 tqdm 1. Github-like avatars python generate_gi

Ming 11 Apr 02, 2022
Snowfall - helpful image handling utils - abstracts various file and opencv and pil features into result oriented functions

snowfall helpful image handling utils - abstracts various file and opencv and pil features into result oriented functions usage examples: from image_h

Less Wright 2 Jan 09, 2022
Hide sensitive information in images

Data-Preserved Script allowing to blur the most sensitive information on images. Prerequisites Before you begin, ensure you have met the following req

2 Dec 01, 2021
Napari 3D Ortho Viewer - an ortho viewer for napari for 3D images

napari-3d-ortho-viewer Napari 3D Ortho Viewer - an ortho viewer for napari for 3D images This napari plugin was generated with Cookiecutter using @nap

niklas netter 5 Nov 28, 2022
An API that renders HTML/CSS content to PNG using Chromium

html_png An API that renders HTML/CSS content to PNG using Chromium Disclaimer I am not responsible if you happen to make your own instance of this AP

10 Aug 08, 2022
Plots is a graph plotting app for GNOME.

Plots is a graph plotting app for GNOME. Plots makes it easy to visualise mathematical formulae. In addition to basic arithmetic operations, it supports trigonometric, hyperbolic, exponential and log

Alex Huntley 138 Dec 14, 2022
Labelme is a graphical image annotation tool, It is written in Python and uses Qt for its graphical interface

Image Polygonal Annotation with Python (polygon, rectangle, circle, line, point and image-level flag annotation).

Kentaro Wada 9.6k Jan 09, 2023