You can get all the images assigned to specific products y product id.
You can get the details of products images like filename, media_type, position, and types.
using ProductRepositoryInterface you can get the images data using below code snippet,
<?php
namespace Path\To\Image;
use Exception;
use Magento\Framework\View\Element\Template;
use Magento\Framework\View\Element\Template\Context;
use Magento\Catalog\Api\ProductRepositoryInterface;
class Images extends Template
{
/**
* @var ProductRepositoryInterface
*/
private $productRepository;
public function __construct(
Context $context,
ProductRepositoryInterface $productRepository,
array $data = []
) {
$this->productRepository = $productRepository;
parent::__construct($context,$data);
}
/**
* get image list
*/
public function getImages()
{
$productId = 1;
try {
$product = $this->productRepository->getById($productId);
} catch (Exception $exception) {
$product = null; // $exception->getMessage()
}
$images = $product->getMediaGalleryEntries();
return $images;
}
Call from the template file,
$imagesList = $block->getImages();
foreach ($imagesList as $image) {
echo "<pre>";print_r($image->getData());
}
Output:
Array
(
[file] => /c/a/cape1.jpg
[media_type] => image
[label] =>
[position] => 1
[disabled] => 0
[types] => Array
(
[0] => image
[1] => small_image
[2] => thumbnail
[3] => swatch_image
)
[id] => 1
)
Array
(
[file] => /c/a/cape2.jpg
[media_type] => image
[label] =>
[position] => 2
[disabled] => 0
[types] => Array
(
)
[id] => 2
)
Array
(
[file] => /c/a/cape3.jpg
[media_type] => image
[label] =>
[position] => 3
[disabled] => 0
[types] => Array
(
)
[id] => 3
)
