PHPackages                             lsolesen/pel - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Image &amp; Media](/categories/media)
4. /
5. lsolesen/pel

AbandonedArchivedLibrary[Image &amp; Media](/categories/media)

lsolesen/pel
============

PHP Exif Library. A library for reading and writing Exif headers in JPEG and TIFF images using PHP.

0.9.12(4y ago)2757.3M—2%75[16 issues](https://github.com/lsolesen/pel/issues)[4 PRs](https://github.com/lsolesen/pel/pulls)8GPL-2.0PHPPHP &gt;=7.1.0

Since Aug 8Pushed 2y ago22 watchersCompare

[ Source](https://github.com/lsolesen/pel)[ Packagist](https://packagist.org/packages/lsolesen/pel)[ Docs](http://pel.github.com/pel/)[ RSS](/packages/lsolesen-pel/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (10)Dependencies (3)Versions (13)Used By (8)

This repository is archived, the fork at [FileEye/pel](https://github.com/FileEye/pel) has taken over. Composer requests can be made for [fileeye/pel](https://packagist.org/packages/fileeye/pel):
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

[](#this-repository-is-archived-the-fork-at-fileeyepel-has-taken-over-composer-requests-can-be-made-for-fileeyepel)

`composer require fileeye/pel`

PEL: PHP Exif Library
=====================

[](#pel-php-exif-library)

[![Tests](https://github.com/pel/pel/actions/workflows/tests.yml/badge.svg)](https://github.com/pel/pel/actions/workflows/tests.yml) [![Code Coverage](https://camo.githubusercontent.com/3b33b31bf1f52cdd85968c2cf211bee3406b6bff751eacc866c90edaeab2e9b6/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f70656c2f70656c2f6261646765732f636f7665726167652e706e673f623d6d6173746572)](https://scrutinizer-ci.com/g/pel/pel/?branch=master) [![Scrutinizer Code Quality](https://camo.githubusercontent.com/47ba3b38db0de734bb1e7d807659b799378ba9170d711c8caf0935c49b32b476/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f70656c2f70656c2f6261646765732f7175616c6974792d73636f72652e706e673f623d6d6173746572)](https://scrutinizer-ci.com/g/pel/pel/?branch=master) [![Latest Stable Version](https://camo.githubusercontent.com/1105892b0363a3de08010e9164b838b3a8f78d456da7f20d82237453a36a71df/68747470733a2f2f706f7365722e707567782e6f72672f6c736f6c6573656e2f70656c2f762f737461626c65)](https://packagist.org/packages/lsolesen/pel) [![Total Downloads](https://camo.githubusercontent.com/d840fb4464fa66500854ed55b2ac33ab9e77682453965a6aef08099eccbd5d7d/68747470733a2f2f706f7365722e707567782e6f72672f6c736f6c6573656e2f70656c2f646f776e6c6f616473)](https://packagist.org/packages/lsolesen/pel) [![License](https://camo.githubusercontent.com/5d93b6ff8e641bda155418ffb51331043a1bc5ef65a7ec9f578dfc6974ae1ba9/68747470733a2f2f706f7365722e707567782e6f72672f6c736f6c6573656e2f70656c2f6c6963656e7365)](https://packagist.org/packages/lsolesen/pel)

README file for PEL: PHP Exif Library. A library with support for reading and writing Exif headers in JPEG and TIFF images using PHP.

Copyright (C) 2004, 2005, 2006 Martin Geisler. Licensed under the GNU GPL, see COPYING for details.

Description
-----------

[](#description)

The PHP Exif Library (PEL) makes it easy to develop programs that will read and write the Exif metadata headers found in JPEG and TIFF images. See the file INSTALL for an introduction to how PEL can be used by your application.

PEL is a library written entirely in PHP 5, which means that it does not have any dependencies outside the core of PHP, it does not even use the Exif module available for PHP.

Please note that the API for PEL is not yet frozen, and it will remain changeable until version 1.0 is reached. Read the NEWS file for important information about API changes.

Also, please go to the PEL development mailing list (look below) and share your ideas about how the API should look like.

Installation
------------

[](#installation)

```
composer require lsolesen/pel

```

Documentation Overview
----------------------

[](#documentation-overview)

- README.markdown: gives you a short introduction to PEL (this file).
- INSTALL.md: explain how to install and get going with PEL.
- CHANGELOG.md: contains important information about changes in PEL.
- examples/: small self-contained examples of how to use PEL.
- AUTHORS: list of people who have helped.
- run run-phpdoc.sh to generate API-documention or see it online at

Features of PEL
---------------

[](#features-of-pel)

- Reads and writes Exif metadata from both JPEG and TIFF images.
- Supports reading and writing all Exif tags.
- Supports internationalization.
- Extensible object-oriented design.
- PhpUnit tested
- Documented with PhpDocumentor ().

Helping out
-----------

[](#helping-out)

Help will be very much appreciated. You can report issues, run the test suite, add patches. The best way to help out is applying patches and helping out with the tests. See instructions in the test/ directory.

All changes to code should be issued through a pull request, and other maintainers should review the code and merge it.

Languages
---------

[](#languages)

To work with the translations, you need the gettext package installed.

Getting Support
---------------

[](#getting-support)

The first place you should consult for support is the documentation supplied with PEL, found at . There you will find a complete API documentation with descriptions of all classes and files in PEL.

The scripts found in the examples/ directory are also a good source of information, especially the edit-description.php file which has tons of comments.

PEL is hosted on Github and uses the tools found there for support. This means that all questions, bug reports, etc. should be directed there (and not directly to the developers).

Please try the latest version before reporting bugs -- it might have been fixed already. The latest code can be found in the git repository at

It is very helpful if you try out the latest code from the git repository before submitting a bug report. The code found there is generally very stable.

Contributing Test Images
------------------------

[](#contributing-test-images)

To make PEL as stable as possible, it is tested with images from a number of different camera models.

New test images are very much appreciated -- please download the existing test images and read the README file found there for instructions.

Credits
-------

[](#credits)

Please see the AUTHORS file for a list of people who have contributed to PEL. See the full list of [code contributors](https://github.com/pel/pel/graphs/contributors).

###  Health Score

46

—

FairBetter than 93% of packages

Maintenance19

Infrequent updates — may be unmaintained

Popularity63

Solid adoption and visibility

Community38

Small or concentrated contributor base

Maturity55

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 64.7% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~264 days

Recently: every ~184 days

Total

10

Last Release

1551d ago

PHP version history (3 changes)0.9.3PHP &gt;=5.0.0

0.9.7PHP &gt;=5.4.0

0.9.10PHP &gt;=7.1.0

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/148026?v=4)[Lars Olesen](/maintainers/lsolesen)[@lsolesen](https://github.com/lsolesen)

![](https://www.gravatar.com/avatar/2baab0265925ad313a4c77ecd63e8735ff01c6af6a5f9c79833d1d9dc68b2e1f?d=identicon)[robinlehrmann](/maintainers/robinlehrmann)

---

Top Contributors

[![mgeisler](https://avatars.githubusercontent.com/u/89623?v=4)](https://github.com/mgeisler "mgeisler (470 commits)")[![lsolesen](https://avatars.githubusercontent.com/u/148026?v=4)](https://github.com/lsolesen "lsolesen (129 commits)")[![weberhofer](https://avatars.githubusercontent.com/u/793251?v=4)](https://github.com/weberhofer "weberhofer (82 commits)")[![mondrake](https://avatars.githubusercontent.com/u/1174864?v=4)](https://github.com/mondrake "mondrake (15 commits)")[![artemShelest](https://avatars.githubusercontent.com/u/18375575?v=4)](https://github.com/artemShelest "artemShelest (10 commits)")[![darkain](https://avatars.githubusercontent.com/u/2524251?v=4)](https://github.com/darkain "darkain (7 commits)")[![v1r0x](https://avatars.githubusercontent.com/u/9248714?v=4)](https://github.com/v1r0x "v1r0x (2 commits)")[![rodrigoaguilera](https://avatars.githubusercontent.com/u/655187?v=4)](https://github.com/rodrigoaguilera "rodrigoaguilera (1 commits)")[![svenbluege](https://avatars.githubusercontent.com/u/3834825?v=4)](https://github.com/svenbluege "svenbluege (1 commits)")[![tm1000](https://avatars.githubusercontent.com/u/564256?v=4)](https://github.com/tm1000 "tm1000 (1 commits)")[![andreas-bergstrom](https://avatars.githubusercontent.com/u/622887?v=4)](https://github.com/andreas-bergstrom "andreas-bergstrom (1 commits)")[![xPaw](https://avatars.githubusercontent.com/u/613331?v=4)](https://github.com/xPaw "xPaw (1 commits)")[![brandonkelly](https://avatars.githubusercontent.com/u/47792?v=4)](https://github.com/brandonkelly "brandonkelly (1 commits)")[![DeyV](https://avatars.githubusercontent.com/u/311626?v=4)](https://github.com/DeyV "DeyV (1 commits)")[![emyu10](https://avatars.githubusercontent.com/u/4220551?v=4)](https://github.com/emyu10 "emyu10 (1 commits)")[![hussainweb](https://avatars.githubusercontent.com/u/1040271?v=4)](https://github.com/hussainweb "hussainweb (1 commits)")[![ivangrozni](https://avatars.githubusercontent.com/u/3587288?v=4)](https://github.com/ivangrozni "ivangrozni (1 commits)")[![Plantaquatix](https://avatars.githubusercontent.com/u/5758369?v=4)](https://github.com/Plantaquatix "Plantaquatix (1 commits)")

---

Tags

exifimage-analysisimage-manipulationphpimageexif

###  Code Quality

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/lsolesen-pel/health.svg)

```
[![Health](https://phpackages.com/badges/lsolesen-pel/health.svg)](https://phpackages.com/packages/lsolesen-pel)
```

###  Alternatives

[intervention/image

PHP Image Processing

14.3k194.3M2.2k](/packages/intervention-image)[league/glide

Wonderfully easy on-demand image manipulation library with an HTTP based API.

2.6k51.2M116](/packages/league-glide)[liip/imagine-bundle

This bundle provides an image manipulation abstraction toolkit for Symfony-based projects.

1.7k38.3M217](/packages/liip-imagine-bundle)[spatie/image

Manipulate images with an expressive API

1.4k54.4M138](/packages/spatie-image)[fileeye/pel

PHP Exif Library. A library for reading and writing Exif headers in JPEG and TIFF images using PHP.

197.1M2](/packages/fileeye-pel)[intervention/image-laravel

Laravel Integration of Intervention Image

1536.5M102](/packages/intervention-image-laravel)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
