承接 dchesterton/image 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

dchesterton/image

Composer 安装命令:

composer require dchesterton/image

包简介

Image metadata library

README 文档

README

Build Status Dependency Status

Latest Stable Version Total Downloads Latest Unstable Version License

Warning: This library is pre-alpha and much of it is a WIP or simply not working at all. Proceed at your own risk.

Supported image types:

  • JPEG
  • PNG
  • GIF
  • PDF
  • SVG
  • WEBP
  • TIFF
  • DNG
  • RAW FORMATS - CR2, NEF, etc.

Supported image meta types:

  • XMP
  • IPTC
  • EXIF

Get metadata

$image = Image::fromFile($filename); $headline = $image->getXmp()->getHeadline(); $camera = $image->getExif()->getCamera(); ...

Modify existing metadata

$image = Image::fromFile($filename); $xmp = $image->getXmp(); $xmp->setHeadline('A test headline'); $xmp->setCaption('Caption'); $image->getIptc()->setCategory('Category'); $image->save();

Standalone XMP

Generating standalone XMP

$xmp = new Xmp; $xmp->setHeadline('A headline') ... $data = $xmp->getXml();

Modifying standalone XMP

$xmp = new Xmp($data); // or Xmp::fromFile($filename) $xmp->setHeadline('A headline'); $data = $xmp->getXml();

Setting/replacing XMP in image

$xmp = new Xmp; $xmp->setHeadline('A headline'); ... $image = Image::fromFile($filename); $image->setXmp($xmp); $image->save() // or $image->getBytes()

Loading specific image type

When file type is known, you can load the file type directly using the file types' fromFile method.

$jpeg = JPEG::fromFile('image.jpg'); $png = PNG::fromFile('image.png');

Instantiate from bytes

If you don't have a file to work with but you do have the image stored in a string (from database, ImageMagick etc.) you can easily instantiate an object from the string.

$data = ... $jpeg = JPEG::fromString($data); $jpeg->getXmp()->setHeadline('Test headline'); $jpeg->save('out.jpg'); // or $jpeg->getBytes();

Instantiate from GD or a stream

You can also create an object from a GD resource or a stream.

$gd = imagecreate(100, 100); $jpeg = JPEG::fromResource($gd);
$stream = fopen('...', 'r+'); $jpeg = JPEG::fromStream($stream);

Aggregate metadata

When just want a piece of metadata and don't care whether it's from XMP, IPTC or EXIF, you can use the aggregate meta object.

$image = Image::fromFile($filename); $headline = $image->getAggregate()->getHeadline();

By default it checks XMP first, then IPTC, then EXIF but you can change the priority:

$aggregate = $image->getAggregate(); $aggregate->setPriority(['exif', 'iptc', 'xmp']); $aggregate->getHeadline(); // will now check EXIF first, then IPTC, then XMP

You can also exclude a metadata type if you do not want to use it:

$aggregate->setPriority(['iptc', 'xmp']); $aggregate->getHeadline(); // will only check IPTC and XMP

You can also modify metadata on an aggregate level:

$image = Image::fromFile($filename); $image->getAggregate()->setHeadline('Headline'); $image->save();

This would set the headline in both XMP and IPTC. For maximum compatibility with other software it's recommended to use the aggregate metadata object where available.

Get GPS data

$image = ... $gps = $image->getAggregateMeta()->getGPS(); // checks EXIF and XMP // or $gps = $image->getExif()->getGPS(); $lat = $gps->getLatitude();

统计信息

  • 总下载量: 35.06k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 41
  • 点击次数: 3
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 40
  • Watchers: 5
  • Forks: 22
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-01-04

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固