Magento 2获取图像的高度和宽度。 产品图片我需要定义图像的高度宽度。
答案 0 :(得分:0)
<?php
if(isset($_SESSION['sum']))
{
$s1=$_SESSION['sum'];
?>
<form method="post" action="isWhere">...</form>
<?php
}
?>
现在,我们通过模板文件中的id和sku加载产品。然后打印产品图像的高度和宽度。我已经打印了product_small_image的高度和宽度。同样,我们可以打印product_base_image,product_thumbnail_image等的高度和宽度值。
app/code/Chapagain/HelloWorld/Block/HelloWorld.php
<?php
namespace Chapagain\HelloWorld\Block;
class HelloWorld extends \Magento\Framework\View\Element\Template
{
protected $_productRepository;
public function __construct(
\Magento\Backend\Block\Template\Context $context,
\Magento\Catalog\Model\ProductRepository $productRepository,
array $data = []
)
{
$this->_productRepository = $productRepository;
parent::__construct($context, $data);
}
public function getProductById($id)
{
return $this->_productRepository->getById($id);
}
public function getProductBySku($sku)
{
return $this->_productRepository->get($sku);
}
/**
* Retrieve image width
*
* @return int|null
*/
public function getImageOriginalWidth($product, $imageId, $attributes = [])
{
return $this->_productImageHelper->init($product, $imageId, $attributes)->getWidth();
}
/**
* Retrieve image height
*
* @return int|null
*/
public function getImageOriginalHeight($product, $imageId, $attributes = [])
{
return $this->_productImageHelper->init($product, $imageId, $attributes)->getHeight();
}
}
?>
可以从前端模板的视图布局xml文件调整要在前端显示的不同媒体图像的高度和宽度。默认的Magento 2模板是LUMA。因此,此模板的视图布局xml存在于$id = YOUR_PRODUCT_ID;
$sku = 'YOUR_PRODUCT_SKU';
$_product = $block->getProductById($id);
$_product = $block->getProductBySku($sku);
echo $block->getImageWidth($product, 'product_small_image') . '<br />';
echo $block->getImageHeight($product, 'product_small_image') . '<br />';
以下是view.xml文件的示例内容,其中定义了媒体图像的高度和宽度:
YOUR_MAGENTO_ROOT/vendor/magento/theme-frontend-luma/etc/view.xml.
答案 1 :(得分:-1)
您可以使用下面提到的代码在模板中获取完整的产品图片路径:
echo $block->getImage($_product, $image)->getImageUrl();
它将返回完整的图像路径,包括Magento 2产品的缓存图像路径。
但是,如果您还需要获取图像高度和宽度,可以使用以下代码:
echo $block->getImage($_product, $image)->getHeight();
它会返回图像高度。
echo $block->getImage($_product, $image)->getWidth();
并且,它将帮助您返回图像宽度。