Magento 2:获得图像的高度宽度

时间:2017-05-15 05:51:54

标签: magento magento2

Magento 2获取图像的高度和宽度。 产品图片我需要定义图像的高度宽度。

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();

并且,它将帮助您返回图像宽度。