npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

image-metadata-editor

v2023.2.3

Published

image-metadata-editor package is a versatile and cross-compatible tool for reading and writing metadata in various image formats. Interact with the metadata stored within images, including EXIF (Exchangeable Image File Format) data, XMP (Extensible Metada

Downloads

115

Readme

GitHub top language Issues License Commit activity Last commit npm downloads per month npm total downloads npm version

image-metadata-editor

image-metadata-editor, is a JavaScript module that enables the addition of various types of metadata to image files, such as PNG and JPG. It includes functions for adding textual metadata (tEXt) to PNG images, metadata markers to JPG images, and XMP (Extensible Metadata Platform) metadata to both PNG and JPG images. Additionally, it offers a utility function for detecting the MIME type of an image file.

Here's a high-level description of the key functionalities and components of this module/library:

  1. Write tEXt Metadata to a PNG Image:

    • Function: writePNGtext
    • Purpose: This function allows users to add textual metadata to PNG images. Textual metadata includes key-value pairs in a specific format.
    • Usage: Users provide the original PNG image, a key, a value, and an optional mode (e.g., "tEXt" or "zTXt"). The function checks if the image is a PNG, validates the text mode, and then adds the metadata to the image.
  2. Write Metadata Markers to a JPG Image:

    • Function: writeJPGMarker
    • Purpose: This function is used for adding metadata markers to JPG images. Metadata markers can be used to add comments or other metadata to the image.
    • Usage: Users provide the original JPG image, the metadata value, and an optional marker (default is COM). The function checks if the image is a JPG and then inserts the metadata marker with the specified value.
  3. Write XMP Metadata to Images (PNG and JPG):

    • Function: writeXMP
    • Purpose: This function is designed for adding XMP metadata to both PNG and JPG images. XMP is a standardized format for metadata, often used for detailed image metadata.
    • Usage: Users provide the original image and the XMP metadata as a well-structured XML document. The function checks the validity of the XMP XML, the image format, and then adds the XMP metadata to the image.
  4. Get the MIME Type of an Image:

    • Function: getMimeType
    • Purpose: This utility function is used to detect the MIME type of an image based on its magic bytes. It can identify whether an image is a PNG, JPG, or another format.
    • Usage: Users provide the image as a Uint8Array, and the function returns the detected MIME type (e.g., "image/png", "image/jpeg") or null if the format is not recognized.

The library leverages other JavaScript libraries, such as crc-32 for calculating CRC32 checksums, fast-xml-parser for XML validation, and pako for DEFLATE compression

image-metadata-editor simplifies the process of adding different types of metadata to image files and includes error handling to ensure that the image format is compatible with the chosen metadata type.

See the documentation for each library for more information on things you can use it for.

Documentation

A high-level overview of how the documentation is organized organized will help you know where to look for certain things:

  • Tutorials take you by the hand through a series of steps to get started using the software. Start here if you’re new.
  • The Technical Reference documents APIs and other aspects of the machinery. This documentation describes how to use the classes and functions at a lower level and assume that you have a good high-level understanding of the software.

Install With npm

npm install image-metadata-editor

Head to https://www.npmjs.com/package/image-metadata-editor/ for more info

Download Project

Clone

Using The Command Line

  1. Press the Clone or download button in the top right
  2. Copy the URL (link)
  3. Open the command line and change directory to where you wish to clone to
  4. Type 'git clone' followed by URL in step 2
    git clone https://github.com/FHPythonUtils/image-metadata-editor

More information can be found at https://help.github.com/en/articles/cloning-a-repository

Using GitHub Desktop

  1. Press the Clone or download button in the top right
  2. Click open in desktop
  3. Choose the path for where you want and click Clone

More information can be found at https://help.github.com/en/desktop/contributing-to-projects/cloning-a-repository-from-github-to-github-desktop

Download Zip File

  1. Download this GitHub repository
  2. Extract the zip archive
  3. Copy/ move to the desired location

Community Files

Licence

MIT License Copyright (c) FredHappyface (See the LICENSE for more information.)

Changelog

See the Changelog for more information.

Code of Conduct

Online communities include people from many backgrounds. The Project contributors are committed to providing a friendly, safe and welcoming environment for all. Please see the Code of Conduct for more information.

Contributing

Contributions are welcome, please see the Contributing Guidelines for more information.

Security

Thank you for improving the security of the project, please see the Security Policy for more information.

Support

Thank you for using this project, I hope it is of use to you. Please be aware that those involved with the project often do so for fun along with other commitments (such as work, family, etc). Please see the Support Policy for more information.

Rationale

The rationale acts as a guide to various processes regarding projects such as the versioning scheme and the programming styles used. Please see the Rationale for more information.