ImageType
Документация по imagetype. Часть API wrapper для КиноПоиска.
Типы изображений в Kinopoisk API.
Описание
ImageType определяет различные типы изображений, которые могут быть связаны с фильмом: кадры из фильма, постеры, фоны и т.д.
Значения enum
Основные типы изображений
STILL- Кадр из фильмаSHOOTING- Изображения со съемокPOSTER- ПостерFAN_ART- Фан-артыPROMO- ПромоCONCEPT- Концепт-артыWALLPAPER- ОбоиCOVER- ОбложкиSCREENSHOT- СкриншотыBACKGROUND- ФонPREVIEW- Превью
Методы
getDisplayName()
Получает человекочитаемое название типа изображения.
public function getDisplayName(): stringВозвращаемое значение
string- Название типа изображения на русском языке
Пример использования
echo ImageType::STILL->getDisplayName(); // "Кадр из фильма"
echo ImageType::POSTER->getDisplayName(); // "Постер"
echo ImageType::FAN_ART->getDisplayName(); // "Фан-арты"isMain()
Проверяет, является ли тип изображения основным.
public function isMain(): boolВозвращаемое значение
bool-trueесли основной тип,falseв противном случае
Описание
Основные типы изображений - это те, которые обычно используются для отображения в галереях и каталогах.
Пример использования
if (ImageType::POSTER->isMain()) {
echo "Основной тип изображения";
}
// Основные типы: POSTER, STILL, FAN_ART, CONCEPTisPromo()
Проверяет, является ли тип изображения промо-материалом.
public function isPromo(): boolВозвращаемое значение
bool-trueесли промо-материал,falseв противном случае
Описание
Промо-материалы используются для рекламы и продвижения фильма.
Пример использования
if (ImageType::PROMO->isPromo()) {
echo "Промо-материал";
}
// Промо-типы: PROMO, POSTER, COVER, WALLPAPERПолный пример использования
<?php
require_once 'vendor/autoload.php';
use NotKinopoisk\Client;
use NotKinopoisk\Enums\ImageType;
// Создание клиента
$client = new Client('your-api-key');
// Получение различных типов изображений для фильма
$filmId = 301; // Матрица
echo "=== Изображения фильма ===\n";
// Постеры
$posters = $client->films->getImages($filmId, ImageType::POSTER);
echo "📰 Постеров: " . count($posters) . "\n";
// Кадры из фильма
$stills = $client->films->getImages($filmId, ImageType::STILL);
echo "🎬 Кадров из фильма: " . count($stills) . "\n";
// Фан-арты
$fanArts = $client->films->getImages($filmId, ImageType::FAN_ART);
echo "🎨 Фан-артов: " . count($fanArts) . "\n";
// Промо-материалы
$promos = $client->films->getImages($filmId, ImageType::PROMO);
echo "📢 Промо-материалов: " . count($promos) . "\n";
// Концепт-арты
$concepts = $client->films->getImages($filmId, ImageType::CONCEPT);
echo "🎭 Концепт-артов: " . count($concepts) . "\n";
// Обои
$wallpapers = $client->films->getImages($filmId, ImageType::WALLPAPER);
echo "🖼️ Обоев: " . count($wallpapers) . "\n";Работа с типами изображений
// Получение всех типов изображений
$allImageTypes = [
ImageType::STILL,
ImageType::SHOOTING,
ImageType::POSTER,
ImageType::FAN_ART,
ImageType::PROMO,
ImageType::CONCEPT,
ImageType::WALLPAPER,
ImageType::COVER,
ImageType::SCREENSHOT,
ImageType::BACKGROUND,
ImageType::PREVIEW
];
echo "=== Все типы изображений ===\n";
foreach ($allImageTypes as $type) {
echo "- {$type->value}: {$type->getDisplayName()}\n";
}
// Фильтрация основных типов
$mainTypes = array_filter($allImageTypes, fn($type) => $type->isMain());
echo "\n=== Основные типы ===\n";
foreach ($mainTypes as $type) {
echo "- {$type->getDisplayName()}\n";
}
// Фильтрация промо-материалов
$promoTypes = array_filter($allImageTypes, fn($type) => $type->isPromo());
echo "\n=== Промо-материалы ===\n";
foreach ($promoTypes as $type) {
echo "- {$type->getDisplayName()}\n";
}Получение изображений по типам
function getImagesByType(Client $client, int $filmId, ImageType $imageType): array {
try {
return $client->films->getImages($filmId, $imageType);
} catch (\Exception $e) {
echo "Ошибка при получении {$imageType->getDisplayName()}: {$e->getMessage()}\n";
return [];
}
}
// Получение всех изображений для фильма
$filmId = 301;
$imageTypes = [ImageType::POSTER, ImageType::STILL, ImageType::FAN_ART];
echo "=== Изображения фильма ===\n";
foreach ($imageTypes as $type) {
$images = getImagesByType($client, $filmId, $type);
echo "{$type->getDisplayName()}: " . count($images) . " изображений\n";
// Вывод первых 3 изображений
foreach (array_slice($images, 0, 3) as $image) {
echo " - {$image->imageUrl}\n";
}
echo "\n";
}Создание галереи изображений
function createImageGallery(Client $client, int $filmId): array {
$gallery = [];
// Получение основных типов изображений
$mainTypes = [ImageType::POSTER, ImageType::STILL, ImageType::FAN_ART, ImageType::CONCEPT];
foreach ($mainTypes as $type) {
$images = getImagesByType($client, $filmId, $type);
if (!empty($images)) {
$gallery[$type->value] = [
'type' => $type->getDisplayName(),
'count' => count($images),
'images' => $images
];
}
}
return $gallery;
}
// Использование
$gallery = createImageGallery($client, 301);
echo "=== Галерея изображений ===\n";
foreach ($gallery as $typeKey => $typeData) {
echo "📁 {$typeData['type']} ({$typeData['count']} изображений)\n";
foreach (array_slice($typeData['images'], 0, 2) as $image) {
echo " 🖼️ {$image->imageUrl}\n";
}
echo "\n";
}Связанные классы
Image- Модель изображенияFilmService- Сервис для работы с фильмамиFilm- Модель фильма