Files
pathfinder/app/Lib/Format/Image.php
Mark Friedrich 647bd7db58 - BC Break: _PHP_ namespaces changed (PSR-4 standard). The _root_ namespace for all _PF_ related scripts is Exodus4D\Pathfinder
- BC Break: Project folder structure changed. Removed `app/main` dir.
- BC Break: Core _PHP_ framework + dependencies moved into `composer.json` and are no longer part of this repo
2019-12-15 22:27:17 +01:00

58 lines
1.9 KiB
PHP

<?php
namespace Exodus4D\Pathfinder\Lib\Format;
use Exodus4D\Pathfinder\Lib\Config;
class Image extends \Prefab {
/**
* default image parameter for CCPs image server
* @see https://developers.eveonline.com/blog/article/from-image-server-to-a-whole-new-image-service-1
*/
const DEFAULT_EVE_SRC_CONFIG = [
'alliances' => [
'variant' => 'logo',
'size' => 64 // 64 is less 'blurry' with CSS downscale to 32 than native 32
],
'corporations' => [
'variant' => 'logo',
'size' => 64 // 64 is less 'blurry' with CSS downscale to 32 than native 32
],
'characters' => [
'variant' => 'portrait',
'size' => 32 // 32 is fine here, no visual difference to 64
],
'types' => [
'variant' => 'icon', // 'render' also works, 64px size is max for 'icon'
'size' => 64 // 64 is less 'blurry' with CSS downscale to 32 than native 32
]
];
/**
* build image server src URL
* @param string $resourceType
* @param int $resourceId
* @param int|null $size
* @param string|null $resourceVariant
* @return string|null
*/
public function eveSrcUrl(string $resourceType, int $resourceId, ?int $size = null, ?string $resourceVariant = null) : ?string {
$url = null;
if(
$resourceId &&
($serviceUrl = rtrim(Config::getPathfinderData('api.ccp_image_server'), '/')) &&
($defaults = static::DEFAULT_EVE_SRC_CONFIG[$resourceType])
){
$parts = [$serviceUrl, $resourceType, $resourceId, $resourceVariant ? : $defaults['variant']];
$url = implode('/', $parts);
$params = ['size' => $size ? : $defaults['size']];
$url .= '?' . http_build_query($params);
}
return $url;
}
}