我正在尝试使用magento Varien_Image
类来调整图像大小。但是当我想要更改图像尺寸时,我每次都要清空调整大小的文件夹。我厌倦了这样做。当我改变维度它将自动重新创建该维度的图像。我用于调整大小的代码或函数。
public function getProductImage($image,$width = 270,$height = 270){
if($image!="" && file_exists(Mage::getBaseDir('media').DS.$image)){
$_imageUrl = Mage::getBaseDir('media').DS.$image;
$imageResized = Mage::getBaseDir('media').DS.'resized/'.$image;
if (!file_exists($imageResized)&&file_exists($_imageUrl)) {
$imageObj = new Varien_Image($_imageUrl);
$imageObj->constrainOnly(TRUE);
$imageObj->keepAspectRatio(TRUE);
$imageObj->keepFrame(FALSE);
$imageObj->quality(100);
$imageObj->resize($width, null);
$imageObj->save($imageResized);
$resizedURL = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA) . "resized/" . $image;
return $resizedURL;
}
elseif(file_exists($imageResized)) {
$resizedURL = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA) . "resized/" . $image;
return $resizedURL;
}
else{
return Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA).$image;
}
}
else
{
return Mage::getBaseUrl('media')."banner/resized/240X/placeholder.png";
}
}
答案 0 :(得分:0)
您可以使用以下文件夹结构传递宽度,以便将不同尺寸的图像保存在不同的文件夹中。
$ imageResized = Mage :: getBaseDir('media')。DS.'resized /'.$ width。'/'。$ image;