PHPackages                             eve-metis/evetech-image-server - 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. eve-metis/evetech-image-server

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

eve-metis/evetech-image-server
==============================

A framework-agnostic PHP 8.3+ client for the EVE Online Image Server.

00PHPCI passing

Since Feb 21Pushed 4mo agoCompare

[ Source](https://github.com/eve-metis/evetech-image-server)[ Packagist](https://packagist.org/packages/eve-metis/evetech-image-server)[ RSS](/packages/eve-metis-evetech-image-server/feed)WikiDiscussions main Synced today

READMEChangelogDependenciesVersions (1)Used By (0)

EVE Online Image Server
=======================

[](#eve-online-image-server)

A lightweight, framework-agnostic PHP 8.3+ client for the [EVE Online Image Server](https://docs.esi.evetech.net/docs/image_server.html).

Generates correctly structured image URLs for characters, corporations, alliances, NPC factions, and all type variations (icons, renders, blueprints, relics).

---

Requirements
------------

[](#requirements)

- PHP **8.3** or higher
- No framework dependencies

---

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

[](#installation)

```
composer require eve-metis/evetech-image-server
```

---

Quick Start
-----------

[](#quick-start)

```
use EveMetis\EveImageServer\ImageServer;

$imageServer = new ImageServer();

// Character portrait
echo $imageServer->getCharacterPortrait(1338057886);
// https://images.evetech.net/characters/1338057886/portrait?size=128&tenant=tranquility

// Ship render
echo $imageServer->getTypeRender(587, 512);
// https://images.evetech.net/types/587/render?size=512&tenant=tranquility

// Alliance logo
echo $imageServer->getAllianceLogo(434243723, 64);
// https://images.evetech.net/alliances/434243723/logo?size=64&tenant=tranquility
```

---

Usage
-----

[](#usage)

### Characters

[](#characters)

```
$imageServer->getCharacterPortrait(int $characterId, int $size = 128, string $tenant = 'tranquility'): string
```

Returns a JPEG URL. All other image types return PNGs.

```
$imageServer->getCharacterPortrait(1338057886);        // default 128px
$imageServer->getCharacterPortrait(1338057886, 512);   // 512px
```

---

### Alliances

[](#alliances)

```
$imageServer->getAllianceLogo(int $allianceId, int $size = 128, string $tenant = 'tranquility'): string
```

```
$imageServer->getAllianceLogo(434243723);
$imageServer->getAllianceLogo(434243723, 256);
```

---

### Corporations

[](#corporations)

```
$imageServer->getCorporationLogo(int $corporationId, int $size = 128, string $tenant = 'tranquility'): string
```

```
$imageServer->getCorporationLogo(109299958);
```

---

### NPC Factions

[](#npc-factions)

NPC faction logos are served via the `corporations` category using the faction ID.

```
$imageServer->getFactionLogo(int $factionId, int $size = 128, string $tenant = 'tranquility'): string
```

```
$imageServer->getFactionLogo(500001); // Caldari State
```

---

### Types

[](#types)

Types support multiple image variations depending on the item category.

MethodVariationUse case`getTypeIcon()``icon`All types — ships, modules, stations, etc.`getTypeRender()``render`Ships and some structures (3D render)`getTypeBlueprint()``bp`Blueprint originals`getTypeBlueprintCopy()``bpc`Blueprint copies`getTypeRelic()``relic`Sleeper relic/salvage types```
$imageServer->getTypeIcon(int $typeId, int $size = 128, string $tenant = 'tranquility'): string
$imageServer->getTypeRender(int $typeId, int $size = 128, string $tenant = 'tranquility'): string
$imageServer->getTypeBlueprint(int $typeId, int $size = 128, string $tenant = 'tranquility'): string
$imageServer->getTypeBlueprintCopy(int $typeId, int $size = 128, string $tenant = 'tranquility'): string
$imageServer->getTypeRelic(int $typeId, int $size = 128, string $tenant = 'tranquility'): string
```

```
$imageServer->getTypeIcon(587);            // Rifter icon
$imageServer->getTypeRender(587, 512);     // Rifter render at 512px
$imageServer->getTypeBlueprint(11568);     // Avatar Blueprint original
$imageServer->getTypeBlueprintCopy(11568); // Avatar Blueprint copy
$imageServer->getTypeRelic(30752);         // Intact Hull Section relic
```

> **Note:** Not all types support every variation. The image server will return a `404` if the variation doesn't exist for a given type (e.g., requesting a `render` for a module, or a `relic` for a ship). Handle this appropriately in your application.

---

### Size Parameter

[](#size-parameter)

Valid sizes are: `32`, `64`, `128`, `256`, `512`, `1024`.

If an invalid size is provided, it silently falls back to `128`. You can reference the valid set from the constant:

```
ImageServer::VALID_SIZES; // [32, 64, 128, 256, 512, 1024]
```

---

### Tenant Parameter

[](#tenant-parameter)

The `tenant` parameter selects which server's images are returned. Defaults to `tranquility` (live server). Use `singularity` for the test server.

```
use EveMetis\EveImageServer\Enum\Tenant;

$imageServer->getCharacterPortrait(1338057886, 128, Tenant::SINGULARITY->value);
// or just pass the string directly:
$imageServer->getCharacterPortrait(1338057886, 128, 'singularity');
```

---

### Default/Placeholder Images

[](#defaultplaceholder-images)

The image server returns a default placeholder for ID `1` across all categories:

```
$imageServer->getCharacterPortrait(1);  // default portrait
$imageServer->getCorporationLogo(1);    // default corp logo
$imageServer->getAllianceLogo(1);       // default alliance logo
```

---

Testing
-------

[](#testing)

```
composer test
```

---

Static Analysis
---------------

[](#static-analysis)

```
composer phpstan
```

---

Code Style
----------

[](#code-style)

Check:

```
composer phpcs
```

Fix:

```
composer phpcbf
```

---

Rector (Automated Refactoring)
------------------------------

[](#rector-automated-refactoring)

Dry run:

```
composer rector -- --dry-run
```

Apply:

```
composer rector
```

---

Contributing
------------

[](#contributing)

Contributions are welcome. Please ensure all the following pass before opening a pull request:

```
composer test
composer phpstan
composer phpcs
composer rector -- --dry-run
```

---

Licence
-------

[](#licence)

MIT. See [LICENSE](LICENSE) for details.

###  Health Score

18

—

LowBetter than 8% of packages

Maintenance52

Moderate activity, may be stable

Popularity0

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity12

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% 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.

### Community

Maintainers

![](https://www.gravatar.com/avatar/d39122c80f43f45883b7efaeb6aa856e4c0fc972707a71c8c3f642f2e5b77e1f?d=identicon)[firalkus](/maintainers/firalkus)

---

Top Contributors

[![firalkus](https://avatars.githubusercontent.com/u/176775180?v=4)](https://github.com/firalkus "firalkus (4 commits)")

### Embed Badge

![Health badge](/badges/eve-metis-evetech-image-server/health.svg)

```
[![Health](https://phpackages.com/badges/eve-metis-evetech-image-server/health.svg)](https://phpackages.com/packages/eve-metis-evetech-image-server)
```

###  Alternatives

[goat1000/svggraph

Generates SVG graphs

135911.1k3](/packages/goat1000-svggraph)[gravatarphp/gravatar

Gravatar URL builder which is most commonly called as a Gravatar library

16653.6k2](/packages/gravatarphp-gravatar)[rsoury/wp-imgix

Rewrites WordPress image URLs to use ImgIX

167.2k](/packages/rsoury-wp-imgix)

PHPackages © 2026

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