public function createPreview($name, $pathModule, $id, $width, $height) { if (isset($_FILES[$name]['name']) && $_FILES[$name]['name'] != null) { $path = Mage::getBaseDir('media') . DS . $pathModule . DS; $imageObj = new Varien_Image($path . '/' . $_FILES[$name]['name']); $imageObj->constrainOnly(TRUE); $imageObj->keepAspectRatio(FALSE); $imageObj->keepFrame(FALSE); $currentRatio = $imageObj->getOriginalWidth() / $imageObj->getOriginalHeight(); $targetRatio = $width / $height; if ($targetRatio > $currentRatio) { $imageObj->resize($width, null); } else { $imageObj->resize(null, $height); } $diffWidth = $imageObj->getOriginalWidth() - $width; $diffHeight = $imageObj->getOriginalHeight() - $height; //$imageObj->resize($width, $height); $imageObj->crop(floor($diffHeight * 0.5), floor($diffWidth / 2), ceil($diffWidth / 2), ceil($diffHeight * 0.5)); if (empty($id)) { $id = Mage::getModel('evoqueflex/evoqueflex')->getCollection()->addOrder('slide_id', 'ASC')->getLastItem()->toArray(); $id = $id['slide_id']; } $userfile_extn = explode(".", strtolower($_FILES[$name]['name'])); $imageObj->save($path . 'preview_' . $id . '.' . $userfile_extn[1]); } }
public function postAction() { if (!empty($_FILES)) { $type = 'file'; if (isset($_FILES[$type]['name']) && $_FILES[$type]['name'] != '') { try { $uploadsDir = Mage::getBaseDir('upload'); $uploader = new Varien_File_Uploader($type); $uploader->setAllowedExtensions(array('jpg', 'jpeg', 'gif', 'png')); $uploader->setAllowRenameFiles(true); $uploader->setFilesDispersion(true); $path = Mage::getBaseDir('media') . DS . 'upload'; if (!is_dir($path)) { mkdir($path, 0777, true); } $uploader->save($path, $_FILES[$type]['name']); $filename = $uploader->getUploadedFileName(); $md5 = md5($filename); $owner = Mage::getSingleton('customer/session')->getCustomerId() ? Mage::getSingleton('customer/session')->getCustomerId() : Mage::getSingleton('customer/session')->getSessionId(); Mage::getModel('xxx_catalog/upload')->setMd5($md5)->setFilename($filename)->setOwner($owner)->save(); $varienImage = new Varien_Image($uploadsDir . $filename); $width = $varienImage->getOriginalWidth(); $height = $varienImage->getOriginalHeight(); $data = ['id' => $md5, 'width' => $width, 'height' => $height]; echo json_encode($data); die; } catch (Exception $e) { Mage::log($e->getMessage(), null, $this->_logFile); echo json_encode(['error' => $this->__($e->getMessage())]); } } } $this->getResponse()->setRedirect(Mage::getUrl('*/*/index')); }
public function getShortImageSize($item) { $width_max = Mage::getStoreConfig('clnews/news/shortdescr_image_max_width'); $height_max = Mage::getStoreConfig('clnews/news/shortdescr_image_max_height'); if (Mage::getStoreConfig('clnews/news/resize_to_max') == 1) { $width = $width_max; $height = $height_max; } else { $imageObj = new Varien_Image(Mage::getBaseDir('media') . DS . $item->getImageShortContent()); $original_width = $imageObj->getOriginalWidth(); $original_height = $imageObj->getOriginalHeight(); if ($original_width > $width_max) { $width = $width_max; } else { $width = $original_width; } if ($original_height > $height_max) { $height = $height_max; } else { $height = $original_height; } } if ($item->getShortWidthResize()) { $width = $item->getShortWidthResize(); } else { $width; } if ($item->getShortHeightResize()) { $height = $item->getShortHeightResize(); } else { $height; } return array('width' => $width, 'height' => $height); }
public function getPopupActive() { $preview = $this->getRequest()->getParam('popup'); $popupID = $this->getRequest()->getParam('popupid'); if ($preview == "preview" && !empty($popupID)) { $arrPopup = Mage::getModel('popup/popup')->getPopupPreview($popupID); } else { $arrPopup = Mage::getModel('popup/popup')->getPopupActive(); } if (!empty($arrPopup)) { // If there is a link, process template tag if (!empty($arrPopup["popup_url"])) { $helper = Mage::helper('cms'); $processor = $helper->getPageTemplateProcessor(); $arrPopup["popup_url"] = $processor->filter($arrPopup["popup_url"]); } // If there is a content, process template tag if (!empty($arrPopup["popup_content_html"])) { $helper = Mage::helper('cms'); $processor = $helper->getPageTemplateProcessor(); $arrPopup["popup_content_html"] = $processor->filter($arrPopup["popup_content_html"]); } $popupID = $arrPopup["popup_id"]; $storeID = Mage::app()->getStore()->getId(); //Check Cookie $cookiePopup = Mage::getSingleton('core/cookie')->get('cookie_popup_' . $storeID); // If there's any cookie or new promo or preview mode if (!$cookiePopup || $cookiePopup != $popupID || $this->getRequest()->getParam('popup') == 'preview') { if (!$this->getRequest()->getParam('popup')) { Mage::getSingleton('core/cookie')->set('cookie_popup_' . $storeID, $popupID, 3600 * 24 * 7); } if (!empty($arrPopup["popup_image"])) { $pathImage = Mage::getBaseDir('media') . "/popup/" . $arrPopup["popup_image"]; if (file_exists($pathImage)) { $imageObj = new Varien_Image($pathImage); $arrPopup['popup_image_width'] = $imageObj->getOriginalWidth(); $arrPopup['popup_image_height'] = $imageObj->getOriginalHeight(); } } return $arrPopup; } } else { return false; } }
protected function _getResizedImage($file, $width, $height, $resizeMode = 'cover') { if (empty($file)) { return false; } $width = (int) $width; $height = (int) $height; $imagePath = $this->getImageFullPath($file); $imageFileResized = $width . '_' . $height . '_' . $resizeMode . DS . $file; $imageFileResizedFullPath = $this->getImageCacheFullPath($imageFileResized); if (!file_exists($imageFileResizedFullPath) && file_exists($imagePath) || file_exists($imagePath) && filemtime($imagePath) > filemtime($imageFileResizedFullPath)) { $finalAspectRatio = $width / $height; $imageObj = new Varien_Image($imagePath); $imageObj->backgroundColor(array(255, 255, 255)); $originalWidth = (int) $imageObj->getOriginalWidth(); $originalHeight = (int) $imageObj->getOriginalHeight(); $originalAspectRatio = $originalWidth / $originalHeight; if ($resizeMode == 'cover') { if ($originalAspectRatio > $finalAspectRatio) { $cropWidth = $finalAspectRatio * $originalHeight; $widthDiff = $originalWidth - $cropWidth; $cropX = (int) ($widthDiff / 2); $imageObj->crop(0, $cropX, $cropX, 0); } else { $cropHeight = (int) ($originalWidth / $finalAspectRatio); $heightDiff = $originalHeight - $cropHeight; $cropY = (int) ($heightDiff / 2); $imageObj->crop($cropY, 0, 0, $cropY); } } else { $imageObj->constrainOnly(false); $imageObj->keepAspectRatio(true); $imageObj->keepFrame(true); } $imageObj->resize($width, $height); $imageObj->quality(100); $imageObj->save($imageFileResizedFullPath); } $imageCacheUrl = $this->getImageCacheUrl($imageFileResized); if (file_exists($imageFileResizedFullPath)) { return $imageCacheUrl; } return false; }
public function getImageSize($image = null, $_maxW = 125, $_maxH = 125, $fix = false) { $_baseSrc = Mage::getSingleton('igallery/config')->getBaseMediaPath(); if (file_exists($_baseSrc . $image->getFile())) { $_imageObject = new Varien_Image($_baseSrc . $image->getFile()); $_sizeArray = array($_imageObject->getOriginalWidth(), $_imageObject->getOriginalHeight()); $_defaultW = $_maxW; $_defaultH = $_maxH; if ($_sizeArray[0] / $_sizeArray[1] > $_defaultW / $_defaultH) { $_defaultW *= floatval($_sizeArray[0] / $_sizeArray[1]) / floatval($_defaultW / $_defaultH); } else { $_defaultH *= floatval($_defaultW / $_defaultH) / floatval($_sizeArray[0] / $_sizeArray[1]); } if ($fix == 'width') { if ($_defaultW > $_maxW) { $_defaultH *= $_maxW / $_defaultW; $_defaultW = $_maxW; } } elseif ($fix == 'height') { if ($_defaultH > $_maxH) { $_defaultW *= $_maxH / $_defaultH; $_defaultH = $_maxH; } } else { if ($_defaultW > $_maxW) { $_defaultH *= $_maxW / $_defaultW; $_defaultW = $_maxW; } elseif ($_defaultH > $_maxH) { $_defaultW *= $_maxH / $_defaultH; $_defaultH = $_maxH; } } return new Varien_Object(array('width' => round($_defaultW), 'height' => round($_defaultH))); } return false; }
/** * save item action */ public function saveAction() { if (!Mage::helper('magenotification')->checkLicenseKeyAdminController($this)) { return; } if ($data = $this->getRequest()->getPost()) { if ($sourceFile = $this->_uploadAffiliateBannerFile('source_file')) { $data['source_file'] = $sourceFile; } // Peel large file uploading if ($peelImage = $this->_uploadAffiliateBannerFile('peel_image')) { $data['peel_image'] = $peelImage; } $bannerId = $this->getRequest()->getParam('id'); $storeId = $this->getRequest()->getParam('store'); $banner = Mage::getModel('affiliateplus/banner'); $banner->setStoreId($storeId)->load($bannerId)->addData($data)->setId($bannerId); // Prepare image size if (($sourceFile = $banner->getSourceFile()) && $banner->getTypeId() != Magestore_AffiliateplusBanner_Helper_Data::BANNER_TYPE_FLASH && (!$banner->getWidth() || !$banner->getHeight())) { try { $image = new Varien_Image(Mage::getBaseDir('media') . DS . 'affiliateplus' . DS . 'banner' . DS . $sourceFile); if (!$banner->getWidth()) { $banner->setWidth($image->getOriginalWidth()); } if (!$banner->getHeight()) { $banner->setHeight($image->getOriginalHeight()); } } catch (Exception $e) { Mage::logException($e); } } // Prepare image size for Peel banner if (($sourceFile = $banner->getPeelImage()) && $banner->getTypeId() == Magestore_AffiliateplusBanner_Helper_Data::BANNER_TYPE_PEEL && (!$banner->getPeelWidth() || !$banner->getPeelHeight())) { try { $image = new Varien_Image(Mage::getBaseDir('media') . DS . 'affiliateplus' . DS . 'banner' . DS . $sourceFile); if (!$banner->getPeelWidth()) { $banner->setPeelWidth($image->getOriginalWidth()); } if (!$banner->getPeelHeight()) { $banner->setPeelHeight($image->getOriginalHeight()); } } catch (Exception $e) { Mage::logException($e); } } // Try to save banner try { $banner->save(); if ($banner->getTypeId() == Magestore_AffiliateplusBanner_Helper_Data::BANNER_TYPE_ROTATOR && isset($data['banners'])) { $childBanners = array(); if ($banner->getData('banners')) { parse_str($banner->getData('banners'), $childBanners); } Mage::getSingleton('affiliateplusbanner/rotator')->setData('parent_id', $banner->getId())->saveChildBanner($childBanners); } Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('affiliateplusbanner')->__('Banner was successfully saved')); Mage::getSingleton('adminhtml/session')->setFormData(false); if ($this->getRequest()->getParam('back')) { $this->_redirect('*/*/edit', array('id' => $banner->getId(), 'store' => $storeId)); return; } $this->_redirect('*/*/', array('store' => $storeId)); return; } catch (Exception $e) { Mage::getSingleton('adminhtml/session')->addError($e->getMessage()); Mage::getSingleton('adminhtml/session')->setFormData($data); $this->_redirect('*/*/edit', array('id' => $this->getRequest()->getParam('id'), 'store' => $storeId)); return; } } Mage::getSingleton('adminhtml/session')->addError(Mage::helper('affiliateplusbanner')->__('Unable to find banner to save')); $this->_redirect('*/*/', array('store' => $storeId)); }
public function init($object, $field) { if ($field) { $this->setField($field); } $image = $object->getData($this->field); if (!$image) { return false; } $this->getMedia(); // set media $Url = $this->getPath($object); $img = explode('/', $image); $img = end($img); $Url['original'] .= $img; $Url['resized'] .= $img; if (!is_file($Url['original'])) { return false; } if (file_exists($Url['resized'])) { $imageResizedObj = new Varien_Image($Url['resized']); if ($this->width != $imageResizedObj->getOriginalWidth() || $this->height != $imageResizedObj->getOriginalHeight() || filemtime($Url['original']) > filemtime($Url['resized'])) { $this->convertImage($Url['original'], $Url['resized']); } } else { if (file_exists($Url['original'])) { $this->convertImage($Url['original'], $Url['resized']); } } if (file_exists($Url['resized'])) { $Url['url_resized'] .= $img; return $Url['url_resized']; } else { $Url['url_original'] .= $img; return $Url['url_original']; } }
public function renderImageAttributes($relativeUrl, $width = null, $height = null) { if ($filename = $this->getFilename($relativeUrl, 'image')) { if ($width || $height) { $processor = new Varien_Image($filename); $newRelativeUrl = 'w' . ($width ? $width : 'x') . 'h' . ($height ? $height : 'x') . '/' . $relativeUrl; if (!$width) { $width = $processor->getOriginalWidth(); } if (!$height) { $height = $processor->getOriginalHeight(); } $processor->keepAspectRatio(true); $processor->resize($width, $height); $processor->save($this->getFilename($newRelativeUrl, 'image', true)); return "src=\"{$this->getUrl($newRelativeUrl, 'image')}\" " . "width=\"{$processor->getOriginalWidth()}\" " . "height=\"{$processor->getOriginalHeight()}\""; } else { return "src=\"{$this->getUrl($relativeUrl, 'image')}\""; } } }
public function getImageSize($image = null, $w, $h, $fix = false) { if (file_exists($image->getPath())) { try { $i = new Varien_Image($image->getPath()); $s = array($i->getOriginalWidth(), $i->getOriginalHeight()); $_defaultW = $w; $_defaultH = $h; if ($s[0] / $s[1] > $_defaultW / $_defaultH) { $_defaultW *= floatval($s[0] / $s[1]) / floatval($_defaultW / $_defaultH); } else { $_defaultH *= floatval($_defaultW / $_defaultH) / floatval($s[0] / $s[1]); } if ($fix == 'width') { if ($_defaultW > $w) { $_defaultH *= $w / $_defaultW; $_defaultW = $w; } } elseif ($fix == 'height') { if ($_defaultH > $h) { $_defaultW *= $h / $_defaultH; $_defaultH = $h; } } else { if ($_defaultW > $w) { $_defaultH *= $w / $_defaultW; $_defaultW = $w; } elseif ($_defaultH > $h) { $_defaultW *= $h / $_defaultH; $_defaultH = $h; } } return new Varien_Object(array('width' => round($_defaultW), 'height' => round($_defaultH))); } catch (Exception $e) { } } return new Varien_Object(array('width' => round($w), 'height' => round($h))); }
/** * Returns array('success'=>true) or array('error'=>'error message') */ function handleUpload($uploadDirectory, $slider_dimensions, $replaceOldFile = FALSE) { if (!is_writable($uploadDirectory)) { return array('error' => Mage::helper('lookbookslider')->__("File can't be uploaded. Upload directory isn't writable.")); } if (!$this->filemodel) { return array('error' => Mage::helper('lookbookslider')->__("Uploader error. File was not uploaded.")); } $size = $this->filemodel->getSize(); if ($size == 0) { return array('error' => Mage::helper('lookbookslider')->__("File is empty")); } if ($size > $this->sizeLimit) { return array('error' => Mage::helper('lookbookslider')->__("File is too large")); } $pathinfo = pathinfo($this->filemodel->getName()); $filename = $pathinfo['filename']; //$filename = md5(uniqid()); $filename = uniqid(); $ext = $pathinfo['extension']; if ($this->allowedExtensions && !in_array(strtolower($ext), $this->allowedExtensions)) { $these = implode(', ', $this->allowedExtensions); return array('error' => Mage::helper('lookbookslider')->__("File can't be uploaded. It has an invalid extension, it should be one of %s.", $these)); } if (!$replaceOldFile) { /// don't overwrite previous files that were uploaded while (file_exists($uploadDirectory . $filename . '.' . $ext)) { $filename .= rand(10, 99); } } if ($this->filemodel->save($uploadDirectory . $filename . '.' . $ext)) { $imgPathFull = $uploadDirectory . $filename . '.' . $ext; $image_dimensions = Mage::helper('lookbookslider')->getImageDimensions($imgPathFull); if (!isset($image_dimensions['error'])) { ///////////////////////////////////////////// $resized_image = new Varien_Image($imgPathFull); $resized_image->constrainOnly(FALSE); $resized_image->keepAspectRatio(TRUE); $resized_image->keepTransparency(TRUE); $resized_image->keepFrame(FALSE); if ($slider_dimensions['width'] / $slider_dimensions['height'] > $resized_image->getOriginalWidth() / $resized_image->getOriginalHeight()) { $resized_image->resize($slider_dimensions['width'], null); } else { $resized_image->resize(null, $slider_dimensions['height']); } $cropX = 0; $cropY = 0; if ($resized_image->getOriginalWidth() > $slider_dimensions['width']) { $cropX = intval(($resized_image->getOriginalWidth() - $slider_dimensions['width']) / 2); } elseif ($resized_image->getOriginalHeight() > $slider_dimensions['height']) { $cropY = intval(($resized_image->getOriginalHeight() - $slider_dimensions['height']) / 2); } $resized_image->crop($cropY, $cropX, $cropX, $cropY); $resized_image->save($imgPathFull); $image_dimensions = Mage::helper('lookbookslider')->getImageDimensions($imgPathFull); ///////////////////////////////////////////// } else { return array('error' => Mage::helper('lookbookslider')->__("Could not get uploaded image dimensions.")); } return array('success' => true, 'filename' => $filename . '.' . $ext, 'dimensions' => $image_dimensions); } else { return array('error' => Mage::helper('lookbookslider')->__("Could not save uploaded file. The upload was cancelled, or server error encountered")); } }
/** * Retrieve custom size image url * * * @param string $imageUrl * @param int $width * @param int $height * @return string|null */ public function getCustomSizeImageUrl($imageUrl, $width = 100, $height = 100) { $screenSize = $width . 'x' . $height; $customDir = $this->getMediaPath('custom' . DS . $screenSize); $this->_verifyDirExist($customDir); $imageUrl = explode('/', $imageUrl); $file = array_pop($imageUrl); $filePath = Mage_XmlConnect_Model_Images::getBasePath() . DS . $file; if (!file_exists($customDir . DS . $file)) { $image = new Varien_Image($filePath); $widthOriginal = $image->getOriginalWidth(); $heightOriginal = $image->getOriginalHeight(); if ($width != $widthOriginal) { $widthOriginal = $width; } if ($height != $heightOriginal) { $heightOriginal = $height; } if ($widthOriginal != $image->getOriginalWidth() || $heightOriginal != $image->getOriginalHeight()) { $image->keepTransparency(true); $image->keepFrame(true); $image->keepAspectRatio(true); $image->backgroundColor(array(255, 255, 255)); $image->resize($widthOriginal, $heightOriginal); $image->save($customDir, basename($file)); } } return $this->getMediaUrl("custom/{$screenSize}/" . basename($file)); }
/** * Retrieve custom size image url * * @param string $imageFile * @param int $width * @param int $height * @return string|bool */ public function getCustomSizeImageUrl($imageFile, $width = 100, $height = 100) { /** @var $imageHelper Mage_XmlConnect_Helper_Image */ $imageHelper = Mage::helper('xmlconnect/image'); $screenSize = $width . 'x' . $height; $customDir = $imageHelper->getMediaPath('custom' . DS . $screenSize); $ioFile = new Varien_Io_File(); $ioFile->checkAndCreateFolder($customDir); $filePath = self::getBasePath() . DS . $imageFile; $isImagePng = true; if (!$ioFile->fileExists($filePath)) { return false; } $originalImageType = $this->_getImageType($filePath); if ($originalImageType !== IMAGETYPE_PNG) { $imageFile = $this->_convertFileExtensionToPng($imageFile); $isImagePng = false; } $customSizeFile = $customDir . DS . $imageFile; if (!file_exists($customSizeFile)) { if (!$isImagePng) { $filePath = $this->_forcedConvertPng($filePath, $customSizeFile, $originalImageType); } $image = new Varien_Image($filePath); $widthOriginal = $image->getOriginalWidth(); $heightOriginal = $image->getOriginalHeight(); if ($width != $widthOriginal) { $widthOriginal = $width; } if ($height != $heightOriginal) { $heightOriginal = $height; } if ($widthOriginal != $image->getOriginalWidth() || $heightOriginal != $image->getOriginalHeight()) { $image->keepTransparency(true); $image->keepFrame(true); $image->keepAspectRatio(true); $image->backgroundColor(array(0, 0, 0)); $image->resize($widthOriginal, $heightOriginal); $image->save($customDir, basename($imageFile)); } else { $ioFile->cp($filePath, $customSizeFile); } } return $imageHelper->getMediaUrl("custom/{$screenSize}/" . basename($imageFile)); }
/** * Render category to html * * @param Mage_Catalog_Model_Category $category * @param int Nesting level number * @param boolean Whether ot not this item is last, affects list item class * @param boolean Whether ot not this item is first, affects list item class * @param boolean Whether ot not this item is outermost, affects list item class * @param string Extra class of outermost list items * @param string If specified wraps children list in div with this class * @param boolean Whether ot not to add on* attributes to list item * @return string */ protected function _renderCategoryMenuItemHtml($category, $level = 0, $isLast = false, $isFirst = false, $isOutermost = false, $outermostItemClass = '', $childrenWrapClass = '', $noEventAttributes = false) { if (!$category->getIsActive()) { return ''; } $html = array(); // get all children $children = $category->getChildren(); $childrenCount = $children->count(); $hasChildren = $children && $childrenCount; // select active children $activeChildren = array(); foreach ($children as $child) { if ($child->getIsActive()) { $activeChildren[] = $child; } } $activeChildrenCount = count($activeChildren); $hasActiveChildren = $activeChildrenCount > 0; // prepare list item html classes $classes = array(); $classes[] = 'level' . $level; $classes[] = 'nav-' . $this->_getItemPosition($level); if ($this->_navigation_place == self::MENU_BAR) { if ($this->isCategoryActive($category)) { $classes[] = 'active'; } } $linkClass = ''; if ($isOutermost && $outermostItemClass) { $classes[] = $outermostItemClass; $linkClass = ' class="' . $outermostItemClass . '"'; } if ($isFirst) { $classes[] = 'first'; } if ($isLast) { $classes[] = 'last'; } if ($hasActiveChildren) { $classes[] = 'parent'; } // prepare list item attributes $attributes = array(); if (count($classes) > 0) { $attributes['class'] = implode(' ', $classes); } switch ($this->getTypeNavigation()) { case GoMage_Navigation_Model_Layer::FILTER_TYPE_DROPDOWN: if ($this->getIsAjax()) { $attributes['onchange'] = "setNavigationUrl(this.value); return false;"; } else { $attributes['onchange'] = "window.location=this.value"; } $curent_id = 0; if (Mage::registry('current_category')) { $curent_id = Mage::registry('current_category')->getId(); } if ($category->getLevel() == $this->_root_level) { $htmlSel = '<li><select'; foreach ($attributes as $attrName => $attrValue) { $htmlSel .= ' ' . $attrName . '="' . str_replace('"', '\\"', $attrValue) . '"'; } $htmlSel .= '>'; $html[] = $htmlSel; $option_value = $this->getIsAjax() ? $this->getAjaxUrl($category) : $this->getCategoryUrl($category); $html[] = '<option class="gan-dropdown-top" value="' . $option_value . '">' . (str_repeat(' ', $category->getLevel() - $this->_root_level) . $category->getName()) . '</option>'; } $option_selected = $curent_id == $category->getId() ? 'selected="selected"' : ''; $option_value = $this->getIsAjax() ? $this->getAjaxUrl($category) : $this->getCategoryUrl($category); $html[] = '<option ' . $option_selected . ' value="' . $option_value . '">' . (str_repeat(' ', $category->getLevel() - $this->_root_level) . $category->getName()) . '</option>'; // render children $htmlChildren = ''; $j = 0; foreach ($activeChildren as $child) { $htmlChildren .= $this->_renderCategoryMenuItemHtml($child, $level + 1, $j == $activeChildrenCount - 1, $j == 0, false, $outermostItemClass, $childrenWrapClass, $noEventAttributes); $j++; } if (!empty($htmlChildren)) { $html[] = $htmlChildren; } if ($category->getLevel() == $this->_root_level) { $html[] = '</select></li>'; } break; case GoMage_Navigation_Model_Layer::FILTER_TYPE_PLAIN: $linkClass = ''; if ($isOutermost && $outermostItemClass) { $linkClass = $outermostItemClass; } if ($this->getIsActiveAjaxCategory($category) || $this->isCategoryActive($category)) { $linkClass .= ' active'; } $linkClass = ' class="' . $linkClass . '" '; if ($category->getLevel() == $this->_root_level) { if ($hasActiveChildren && !$noEventAttributes) { $attributes['onmouseover'] = 'toggleMenu(this,1)'; $attributes['onmouseout'] = 'toggleMenu(this,0)'; } $htmlLi = '<li'; foreach ($attributes as $attrName => $attrValue) { $htmlLi .= ' ' . $attrName . '="' . str_replace('"', '\\"', $attrValue) . '"'; } $htmlLi .= '>'; $html[] = $htmlLi; $htmlA = '<a href="' . $this->getCategoryUrl($category) . '"' . $linkClass; if ($this->getIsAjax()) { $htmlA .= ' onclick="setNavigationUrl(\'' . $this->getAjaxUrl($category) . '\'); return false;" '; } $htmlA .= '>'; $html[] = $htmlA; $html[] = '<span>' . $this->escapeHtml($category->getName()) . '</span>'; $html[] = '</a>'; if ($hasActiveChildren) { if ($this->_navigation_place == self::MENU_BAR) { $_width = $category->getData('navigation_pw_width'); } else { $_width = $category->getData('navigation_pw_side_width'); } $gan_plain_style = ($this->_navigation_place == self::MENU_BAR ? 'background-color: ' . $this->getColumnColor() . ';' : '') . ($_width ? 'width: ' . $_width . 'px;' : ''); if ($gan_plain_style) { $gan_plain_style = 'style="' . $gan_plain_style . '"'; } $html[] = '<div ' . $gan_plain_style . ' class="gan-plain" >'; if (!($this->_navigation_place == self::MENU_BAR)) { $html[] = '<span class="gan-plain-border"></span>'; } $_add_style = ''; if ($this->_navigation_place == self::MENU_BAR) { $navigation_image = $category->getData('navigation_image'); $navigation_image_position = $category->getData('navigation_image_position'); if ($navigation_image) { $navigation_image = $this->getResizedImage($navigation_image, $category->getData('navigation_image_width'), $category->getData('navigation_image_height')); } if ($navigation_image) { $_add_image_style = ''; if ($category->getData('navigation_image_width')) { $_add_image_style = 'width:' . $category->getData('navigation_image_width') . 'px;'; } if ($category->getData('navigation_image_height')) { $_add_image_style .= 'height:' . $category->getData('navigation_image_height') . 'px;'; } if ($_add_image_style) { $_add_image_style = 'style="' . $_add_image_style . '"'; } $this->_plain_image = '<div class="' . GoMage_Navigation_Model_Adminhtml_System_Config_Source_Category_Image_Position::getPositionClass($navigation_image_position) . '">'; $this->_plain_image .= '<img ' . $_add_image_style . ' src="' . Mage::getBaseUrl('media') . "catalog/product/cache/cat_resized/" . $navigation_image . '" alt="' . $this->escapeHtml($category->getName()) . '" />'; $this->_plain_image .= '</div>'; $imageObj = new Varien_Image(Mage::getBaseDir('media') . DS . "catalog" . DS . "product" . DS . "cache" . DS . "cat_resized" . DS . $navigation_image); switch ($navigation_image_position) { case GoMage_Navigation_Model_Adminhtml_System_Config_Source_Category_Image_Position::RIGHT: $_add_style = ' style="margin-right: ' . ((int) ($category->getData('navigation_image_width') ? $category->getData('navigation_image_width') : $imageObj->getOriginalWidth()) + 10) . 'px;" '; $html[] = $this->_plain_image; $this->_plain_image = ''; break; case GoMage_Navigation_Model_Adminhtml_System_Config_Source_Category_Image_Position::TOP: $html[] = $this->_plain_image; $this->_plain_image = ''; break; case GoMage_Navigation_Model_Adminhtml_System_Config_Source_Category_Image_Position::BOTTOM: break; default: case GoMage_Navigation_Model_Adminhtml_System_Config_Source_Category_Image_Position::LEFT: $_add_style = ' style="margin-left: ' . ((int) ($category->getData('navigation_image_width') ? $category->getData('navigation_image_width') : $imageObj->getOriginalWidth()) + 10) . 'px;" '; $html[] = $this->_plain_image; $this->_plain_image = ''; break; } } } $html[] = '<div ' . $_add_style . ' class="gan-plain-items">'; $activeChildren = $this->sort_category($activeChildren); } } else { $_cat_column = null; if ($category->getLevel() == $this->_root_level + 1) { if ($this->_navigation_place == self::MENU_BAR) { $_cat_column = $category->getData('navigation_column') ? $category->getData('navigation_column') : 1; } else { $_cat_column = $category->getData('navigation_column_side') ? $category->getData('navigation_column_side') : 1; } } if ($this->_childs_count == 1 || $_cat_column && $_cat_column != $this->_current_column) { $this->_current_column = $_cat_column; $_with_percent = floor(100 / $this->_columns); if ($this->_childs_count != 1) { $html[] = '</ul>'; } $html[] = '<ul style="width:' . $_with_percent . '%;" class="gan-plain-item">'; } $html[] = '<li' . ($category->getLevel() == $this->_root_level + 1 ? ' class="gan-plain-item-bold" ' : '') . '>'; $htmlA = '<a style="padding-left: ' . 10 * ($category->getLevel() - ($this->_root_level + 1)) . 'px;" href="' . $this->getCategoryUrl($category) . '"' . $linkClass; if ($this->getIsAjax()) { $htmlA .= ' onclick="setNavigationUrl(\'' . $this->getAjaxUrl($category) . '\'); return false;" '; } $htmlA .= '>'; $html[] = $htmlA; $html[] = '<span>' . $this->escapeHtml($category->getName()) . '</span>'; $html[] = '</a>'; $html[] = '</li>'; } // render children $htmlChildren = ''; $j = 0; foreach ($activeChildren as $child) { $this->_childs_count++; $htmlChildren .= $this->_renderCategoryMenuItemHtml($child, $level + 1, $j == $activeChildrenCount - 1, $j == 0, false, $outermostItemClass, $childrenWrapClass, $noEventAttributes); $j++; } if (!empty($htmlChildren)) { $html[] = $htmlChildren; } if ($category->getLevel() == $this->_root_level) { if ($hasActiveChildren) { $html[] = '</ul>'; $html[] = '</div>'; //gan-plain-items if ($this->_plain_image) { $html[] = $this->_plain_image; $this->_plain_image = ''; } $html[] = '</div>'; //gan-plain } $html[] = '</li>'; } break; case GoMage_Navigation_Model_Layer::FILTER_TYPE_FOLDING: $htmlLi = '<li'; foreach ($attributes as $attrName => $attrValue) { $htmlLi .= ' ' . $attrName . '="' . str_replace('"', '\\"', $attrValue) . '"'; } $htmlLi .= '>'; $html[] = $htmlLi; $htmlA = '<a href="' . $this->getCategoryUrl($category) . '"'; $htmlA .= ' style="padding-left: ' . 10 * ($category->getLevel() - $this->_root_level) . 'px;" '; if ($this->getIsAjax()) { $htmlA .= ' onclick="setNavigationUrl(\'' . $this->getAjaxUrl($category) . '\'); return false;" '; } if ($this->getIsActiveAjaxCategory($category) || $this->isCategoryActive($category)) { $htmlA .= ' class="active" '; } $htmlA .= '>'; $html[] = $htmlA; $html[] = '<span>' . $this->escapeHtml($category->getName()) . '</span>'; $html[] = '</a>'; // render children $htmlChildren = ''; $j = 0; foreach ($activeChildren as $child) { $htmlChildren .= $this->_renderCategoryMenuItemHtml($child, $level + 1, $j == $activeChildrenCount - 1, $j == 0, false, $outermostItemClass, $childrenWrapClass, $noEventAttributes); $j++; } if (!empty($htmlChildren)) { $html[] = $htmlChildren; } $html[] = '</li>'; break; case GoMage_Navigation_Model_Layer::FILTER_TYPE_IMAGE: $htmlLi = '<li'; foreach ($attributes as $attrName => $attrValue) { $htmlLi .= ' ' . $attrName . '="' . str_replace('"', '\\"', $attrValue) . '"'; } $htmlLi .= '>'; $html[] = $htmlLi; $htmlA = '<a href="' . $this->getCategoryUrl($category) . '"'; if ($this->getIsAjax()) { $htmlA .= ' onclick="setNavigationUrl(\'' . $this->getAjaxUrl($category) . '\'); return false;" '; } if ($this->getIsActiveAjaxCategory($category) || $this->isCategoryActive($category)) { $htmlA .= ' class="active" '; } $htmlA .= '>'; $html[] = $htmlA; $image_url = $category->getData('filter_image'); if ($image_url) { $image_url = Mage::getBaseUrl('media') . '/catalog/category/' . $image_url; if ($image_width = $this->getImageWidth()) { $image_width = 'width="' . $image_width . '"'; } else { $image_width = ''; } if ($image_height = $this->getImageHeight()) { $image_height = 'height="' . $image_height . '"'; } else { $image_height = ''; } $html[] = '<img ' . $image_width . ' ' . $image_height . ' title="' . $category->getName() . '" src="' . $image_url . '" alt="' . $category->getName() . '" />'; } if ($this->canShowLabels()) { $html[] = '<span>' . $this->escapeHtml($category->getName()) . '</span>'; } $html[] = '</a>'; $html[] = '</li>'; break; case GoMage_Navigation_Model_Layer::FILTER_TYPE_DEFAULT_PRO: if ($hasActiveChildren && !$noEventAttributes) { $attributes['onmouseover'] = 'toggleMenu(this,1)'; $attributes['onmouseout'] = 'toggleMenu(this,0)'; } // assemble list item with attributes $htmlLi = '<li'; foreach ($attributes as $attrName => $attrValue) { $htmlLi .= ' ' . $attrName . '="' . str_replace('"', '\\"', $attrValue) . '"'; } $htmlLi .= '>'; $html[] = $htmlLi; $htmlA = '<a href="' . $this->getCategoryUrl($category) . '"'; if ($this->getIsAjax()) { $htmlA .= ' onclick="setNavigationUrl(\'' . $this->getAjaxUrl($category) . '\'); return false;" '; } if ($this->isCategoryActive($category)) { $htmlA .= ' class="active" '; } $htmlA .= '>'; $html[] = $htmlA; $html[] = '<span>' . $this->escapeHtml($category->getName()) . '</span>'; $html[] = '</a>'; // render children $htmlChildren = ''; $j = 0; foreach ($activeChildren as $child) { $htmlChildren .= $this->_renderCategoryMenuItemHtml($child, $level + 1, $j == $activeChildrenCount - 1, $j == 0, false, $outermostItemClass, $childrenWrapClass, $noEventAttributes); $j++; } if (!empty($htmlChildren)) { if ($childrenWrapClass) { $html[] = '<div class="' . $childrenWrapClass . '">'; } $html[] = '<ul class="level' . $level . '">'; $html[] = $htmlChildren; $html[] = '</ul>'; if ($childrenWrapClass) { $html[] = '</div>'; } } $html[] = '</li>'; break; default: if ($this->_navigation_place == self::MENU_BAR) { if ($hasActiveChildren && !$noEventAttributes) { $attributes['onmouseover'] = 'toggleMenu(this,1)'; $attributes['onmouseout'] = 'toggleMenu(this,0)'; } // assemble list item with attributes $htmlLi = '<li'; foreach ($attributes as $attrName => $attrValue) { $htmlLi .= ' ' . $attrName . '="' . str_replace('"', '\\"', $attrValue) . '"'; } $htmlLi .= '>'; $html[] = $htmlLi; $html[] = '<a href="' . $this->getCategoryUrl($category) . '"' . $linkClass . '>'; $html[] = '<span>' . $this->escapeHtml($category->getName()) . '</span>'; $html[] = '</a>'; // render children $htmlChildren = ''; $j = 0; foreach ($activeChildren as $child) { $htmlChildren .= $this->_renderCategoryMenuItemHtml($child, $level + 1, $j == $activeChildrenCount - 1, $j == 0, false, $outermostItemClass, $childrenWrapClass, $noEventAttributes); $j++; } if (!empty($htmlChildren)) { //// if ($childrenWrapClass) { $html[] = '<div class="children_class">'; // } $html[] = '<ul class="level' . $level . '">'; $html[] = $htmlChildren; $html[] = '</ul>'; // if ($childrenWrapClass) { $html[] = '</div>'; // } } $html[] = '</li>'; } else { $htmlLi = '<li'; foreach ($attributes as $attrName => $attrValue) { $htmlLi .= ' ' . $attrName . '="' . str_replace('"', '\\"', $attrValue) . '"'; } $htmlLi .= '>'; $html[] = $htmlLi; $htmlA = '<a href="' . $this->getCategoryUrl($category) . '"'; $htmlA .= ' style="padding-left: ' . 10 * ($category->getLevel() - $this->_root_level) . 'px;" '; if ($this->getIsAjax()) { $htmlA .= ' onclick="setNavigationUrl(\'' . $this->getAjaxUrl($category) . '\'); return false;" '; } if ($this->getIsActiveAjaxCategory($category) || $this->isCategoryActive($category)) { $htmlA .= ' class="active" '; } $htmlA .= '>'; $html[] = $htmlA; $html[] = '<span>' . $this->escapeHtml($category->getName()) . '</span>'; $html[] = '</a>'; // render children $htmlChildren = ''; $j = 0; if ($this->getIsActiveAjaxCategory($category) || $this->getIsShowAllSubcategories()) { foreach ($activeChildren as $child) { $htmlChildren .= $this->_renderCategoryMenuItemHtml($child, $level + 1, $j == $activeChildrenCount - 1, $j == 0, false, $outermostItemClass, $childrenWrapClass, $noEventAttributes); $j++; } } if (!empty($htmlChildren)) { if ($childrenWrapClass) { $html[] = '<div class="' . $childrenWrapClass . '">'; } $html[] = '<ul class="level' . $level . '">'; $html[] = $htmlChildren; $html[] = '</ul>'; if ($childrenWrapClass) { $html[] = '</div>'; } } $html[] = '</li>'; } } $html = implode("\n", $html); return $html; }
/** * Retrieve thumbnail image url * * @param string $imageUrl * @param int $width * @param int $height * @return string|null */ public function getCustomSizeImageUrl($imageUrl, $width = 100, $height = 100) { $screenSize = $width . 'x' . $height; $customDir = $this->getMediaPath('custom' . DS . $screenSize); $this->_verifyDirExist($customDir); $imageUrl = explode('/', $imageUrl); $file = $imageUrl[count($imageUrl) - 1]; $filePath = $this->getDefaultSizeUploadDir() . DS . $file; if (!file_exists($customDir . DS . $file)) { $adapter = Mage::helper('Mage_Core_Helper_Data')->getImageAdapterType(); $image = new Varien_Image($filePath, $adapter); $widthOriginal = $image->getOriginalWidth(); $heightOriginal = $image->getOriginalHeight(); if ($width != $widthOriginal) { $widthOriginal = $width; } if ($height != $heightOriginal) { $heightOriginal = $height; } if ($widthOriginal != $image->getOriginalWidth() || $heightOriginal != $image->getOriginalHeight()) { $image->keepTransparency(true); $image->keepFrame(true); $image->keepAspectRatio(true); $image->backgroundColor(array(255, 255, 255)); $image->resize($widthOriginal, $heightOriginal); $image->save($customDir, basename($file)); } } return $this->getMediaUrl("custom/{$screenSize}/" . basename($file)); }
public function cropResizeImg($fileName, $tmp, $width, $height = '') { $folderURL = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA); $imageURL = $folderURL . $fileName; $basePath = $tmp; $newPath = Mage::getBaseDir() . DS . 'skin' . DS . 'adminhtml' . DS . 'base' . DS . 'default' . DS . 'evoque' . DS . 'images' . DS . 'Configsets' . DS . $fileName; if (is_file($tmp)) { $imageObj = new Varien_Image($basePath); $imageObj->constrainOnly(TRUE); $imageObj->keepAspectRatio(FALSE); $imageObj->keepFrame(FALSE); $currentRatio = $imageObj->getOriginalWidth() / $imageObj->getOriginalHeight(); $targetRatio = $width / $height; if ($targetRatio > $currentRatio) { $imageObj->resize($width, null); } else { $imageObj->resize(null, $height); } $diffWidth = $imageObj->getOriginalWidth() - $width; $diffHeight = $imageObj->getOriginalHeight() - $height; //$imageObj->resize($width, $height); $imageObj->crop(floor($diffHeight * 0.5), floor($diffWidth / 2), ceil($diffWidth / 2), ceil($diffHeight * 0.5)); $imageObj->save($newPath); } return $fileName; }
public function getThumbnail($field_id, $filename, $width, $height = null) { $filename = Varien_File_Uploader::getCorrectFileName($filename); $imageUrl = $this->getFileFullPath($field_id, $filename); $file_info = @getimagesize($imageUrl); if (!$file_info) { return false; } if (strstr($file_info["mime"], "bmp")) { return false; } if (file_exists($imageUrl)) { $imageObj = new Varien_Image($imageUrl); } if (!$height && (double) substr(Mage::getVersion(), 0, 3) > 1) { $height = round($imageObj->getOriginalHeight() * ($width / $imageObj->getOriginalWidth())); } $imageResized = $this->getFilePath($field_id) . "thumb" . DS . $width . 'x' . $height . '_' . $filename; if (!file_exists($imageResized) && file_exists($imageUrl) || Mage::getStoreConfig('webforms/images/cache') == 0) { if ((double) substr(Mage::getVersion(), 0, 3) > 1) { $imageObj->keepAspectRatio(true); $imageObj->keepTransparency(true); } $imageObj->resize($width, $height); $imageObj->save($imageResized); } $url = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA) . "webforms/" . $this->getId() . "/" . $field_id; if ($this->getData('key_' . $field_id)) { $url .= "/" . $this->getData('key_' . $field_id); } $url .= "/thumb/" . $width . 'x' . $height . '_' . urlencode($filename); return $url; }
public function resizeThumbnail1($thumbImage, $pathName, $width, $height) { $imagePathInput = Mage::getBaseDir('media') . DS . $pathName . DS . $thumbImage; $imageName = $thumbImage; if ($imageName == '') { $imageName = 'no-image.png'; $imagePathInput = Mage::getBaseDir('media') . DS . 'brands' . DS . 'no-image.png'; } $imagePathOutput = $pathName . DS . $width . 'x' . $height . DS . $imageName; $imageUrl = str_replace(DS, '/', $imagePathOutput); $imageUrl = Mage::getBaseUrl('media') . $imageUrl; $pathBaseDir = Mage::getBaseDir('media') . DS . $imagePathOutput; $this->setPlaceholder($imageUrl); if (!is_file($pathBaseDir)) { $_backgroundColor = array(255, 255, 255); try { $imageObj = new Varien_Image($imagePathInput); $imageObj->backgroundColor($_backgroundColor); $imageObj->constrainOnly(TRUE); $imageObj->keepAspectRatio(TRUE); $imageObj->keepFrame(TRUE); $h = $imageObj->getOriginalHeight(); $w = $imageObj->getOriginalWidth(); if ((double) $w / $h <= (double) $width / $height) { $height = $height; $width = $w / $h * $height; $imageObj->resize($width, $height); } else { $width = $width; $height = $h / $w * $width; $imageObj->resize($width, $height); } $imageObj->save($pathBaseDir); } catch (Exception $e) { } } return $this->getPlaceholder(); }
protected function addImage($url, $height = null, $weight = null) { $ext = array_reverse(explode(".", $url)); $ext = $ext[0]; $name = basename($url, "." . $ext); $tempFileName = Mage::getBaseDir('tmp') . "/{$name}" . time() . ".png"; switch ($ext) { case 'gif': imagepng(imagecreatefromgif($url), $tempFileName); break; case 'jpg': imagepng(imagecreatefromjpeg($url), $tempFileName); break; case 'png': file_put_contents($tempFileName, file_get_contents($url)); break; default: return 0; } $this->_tmpFiles[] = $tempFileName; $_image = new Varien_Image($tempFileName); $_image->keepAspectRatio(true); //$_image->keepFrame(true); $_image->keepTransparency(true); if ($height && $_image->getOriginalHeight() > $height) { $_image->resize(null, $height); } if ($weight && $_image->getOriginalWidth() > $weight) { $_image->resize($weight, null); } $_image->save($tempFileName); $img = Zend_Pdf_Image::imageWithPath($tempFileName); $this->_currentPage->drawImage($img, $this->getX(), $this->getY() - $_image->getOriginalHeight(), $this->getX() + $_image->getOriginalWidth(), $this->getY()); $this->setY($this->getY() - $_image->getOriginalHeight() - $this->getInterval()); }
public function getSmallImageFile($fileOrig, $smallPath, $newFileName) { try { $image = new Varien_Image($fileOrig); $origHeight = $image->getOriginalHeight(); $origWidth = $image->getOriginalWidth(); // settings $image->keepAspectRatio(true); $image->keepFrame(true); $image->keepTransparency(true); $image->constrainOnly(false); $image->backgroundColor(array(255, 255, 255)); $image->quality(90); $width = null; $height = null; if (Mage::app()->getStore()->isAdmin()) { if ($origHeight > $origWidth) { $height = $this->getImagesThumbnailsSize(); } else { $width = $this->getImagesThumbnailsSize(); } } else { $configWidth = $this->getImagesThumbnailsSize(); $configHeight = $this->getImagesThumbnailsSize(); if ($origHeight > $origWidth) { $height = $configHeight; } else { $width = $configWidth; } } $image->resize($width, $height); $image->constrainOnly(true); $image->keepAspectRatio(true); $image->keepFrame(false); //$image->display(); $image->save($smallPath, $newFileName); } catch (Exception $e) { } }
/** * Retrieve thumbnail image url * * @param int $width * @return string|null */ public function getCustomSizeImageUrl($imageUrl, $width = 100, $height = 100) { $customDirRoot = Mage::getBaseDir('media') . DS . 'xmlconnect' . DS . 'custom'; $screenSize = $width . 'x' . $height; $customDir = $customDirRoot . DS . $screenSize; $this->_verifyDirExist($customDir); $imageUrl = explode('/', $imageUrl); $file = $imageUrl[count($imageUrl) - 1]; $filePath = $this->getDefaultSizeUploadDir() . DS . $file; if (!file_exists($customDir . $file)) { $image = new Varien_Image($filePath); $widthOriginal = $image->getOriginalWidth(); $heightOriginal = $image->getOriginalHeight(); if ($width != $widthOriginal) { $widthOriginal = $width; } if ($height != $heightOriginal) { $heightOriginal = $height; } if ($widthOriginal != $image->getOriginalWidth() || $heightOriginal != $image->getOriginalHeight()) { $image->keepTransparency(true); $image->keepFrame(true); $image->keepAspectRatio(true); $image->backgroundColor(array(255, 255, 255)); $image->resize($widthOriginal, $heightOriginal); $image->save($customDir, basename($file)); } } return Mage::getBaseUrl('media') . "xmlconnect/custom/{$screenSize}/" . basename($file); }
/** * resize and crop image * @param string $fileName * @param string $width * @param string $height * @return string - resized image url */ public function adaptiveResize($fileName, $width, $height) { $folderURL = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA); $imageURL = $folderURL . $fileName; $basePath = Mage::getBaseDir(Mage_Core_Model_Store::URL_TYPE_MEDIA) . '/' . $fileName; $newPath = Mage::getBaseDir(Mage_Core_Model_Store::URL_TYPE_MEDIA) . '/' . "resized" . '/' . $fileName; //if width empty then return original size image's URL if ($width != '') { //if image has already resized then just return URL if (file_exists($basePath) && is_file($basePath) && !file_exists($newPath)) { $imageObj = new Varien_Image($basePath); $imageObj->constrainOnly(FALSE); $imageObj->keepAspectRatio(TRUE); $imageObj->keepFrame(FALSE); $imageObj->quality(95); $this->currentDimensions = array(); $this->currentDimensions['width'] = $imageObj->getOriginalWidth(); $this->currentDimensions['height'] = $imageObj->getOriginalHeight(); $this->newDimensions = array(); $this->newDimensions['newWidth'] = $imageObj->getOriginalWidth(); $this->newDimensions['newHeight'] = $imageObj->getOriginalHeight(); $this->adaptiveResizeDimensions($width, $height); $imageObj->resize($this->newDimensions['newWidth'], $this->newDimensions['newHeight']); if ($this->cropDimensions['x'] > 0 || $this->cropDimensions['y'] > 0) { //top, left, right, bottom $imageObj->crop($this->cropDimensions['y'], $this->cropDimensions['x'], intval($this->newDimensions['newWidth'] - $this->_adaptiveMaxWidth - $this->cropDimensions['x']), intval($this->newDimensions['newHeight'] - $this->_adaptiveMaxHeight - $this->cropDimensions['y'])); } $imageObj->save($newPath); } $resizedURL = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA) . "resized" . '/' . $fileName; } else { $resizedURL = $imageURL; } return $resizedURL; }
/** * Splits images Path and Name * * img_path=lookbook/example.jpg * * @param string $img_path * @return array('width'=>$width, 'height'=>$height) */ public function getImageDimensions($img_path) { if (file_exists($img_path)) { $imageObj = new Varien_Image($img_path); $width = $imageObj->getOriginalWidth(); $height = $imageObj->getOriginalHeight(); $result = array('width' => $width, 'height' => $height); } else { $result = array('error' => "{$img_path} does not exists"); } return $result; }
public function addWatermarkIfNeed($imageLink) { if (!$this->isWatermarkEnabled()) { return $imageLink; } $imagePath = $this->imageLinkToPath($imageLink); if (!is_file($imagePath)) { return $imageLink; } $fileExtension = pathinfo($imagePath, PATHINFO_EXTENSION); $pathWithoutExtension = preg_replace('/\\.' . $fileExtension . '$/', '', $imagePath); $markingImagePath = $pathWithoutExtension . '-' . $this->getWatermarkHash() . '.' . $fileExtension; if (is_file($markingImagePath)) { $currentTime = Mage::helper('M2ePro')->getCurrentGmtDate(true); if (filemtime($markingImagePath) + self::WATERMARK_CACHE_TIME > $currentTime) { return $this->pathToImageLink($markingImagePath); } @unlink($markingImagePath); } $prevMarkingImagePath = $pathWithoutExtension . '-' . $this->getWatermarkPreviousHash() . '.' . $fileExtension; if (is_file($prevMarkingImagePath)) { @unlink($prevMarkingImagePath); } $varDir = new Ess_M2ePro_Model_General_VariablesDir(array('child_folder' => 'ebay/template/description/watermarks')); $watermarkPath = $varDir->getPath() . $this->getId() . '.png'; if (!is_file($watermarkPath)) { $varDir->create(); @file_put_contents($watermarkPath, $this->getWatermarkImage()); } $watermarkPositions = array(self::WATERMARK_POSITION_TOP => Varien_Image_Adapter_Abstract::POSITION_TOP_RIGHT, self::WATERMARK_POSITION_MIDDLE => Varien_Image_Adapter_Abstract::POSITION_CENTER, self::WATERMARK_POSITION_BOTTOM => Varien_Image_Adapter_Abstract::POSITION_BOTTOM_RIGHT); $image = new Varien_Image($imagePath); $imageOriginalHeight = $image->getOriginalHeight(); $imageOriginalWidth = $image->getOriginalWidth(); $image->open(); $image->setWatermarkPosition($watermarkPositions[$this->getWatermarkPosition()]); $watermark = new Varien_Image($watermarkPath); $watermarkOriginalHeight = $watermark->getOriginalHeight(); $watermarkOriginalWidth = $watermark->getOriginalWidth(); if ($this->isWatermarkScaleModeStretch()) { $image->setWatermarkPosition(Varien_Image_Adapter_Abstract::POSITION_STRETCH); } if ($this->isWatermarkScaleModeInWidth()) { $watermarkWidth = $imageOriginalWidth; $heightPercent = $watermarkOriginalWidth / $watermarkWidth; $watermarkHeight = (int) ($watermarkOriginalHeight / $heightPercent); $image->setWatermarkWidth($watermarkWidth); $image->setWatermarkHeigth($watermarkHeight); } if ($this->isWatermarkScaleModeNone()) { $image->setWatermarkWidth($watermarkOriginalWidth); $image->setWatermarkHeigth($watermarkOriginalHeight); if ($watermarkOriginalHeight > $imageOriginalHeight) { $image->setWatermarkHeigth($imageOriginalHeight); $widthPercent = $watermarkOriginalHeight / $imageOriginalHeight; $watermarkWidth = (int) ($watermarkOriginalWidth / $widthPercent); $image->setWatermarkWidth($watermarkWidth); } if ($watermarkOriginalWidth > $imageOriginalWidth) { $image->setWatermarkWidth($imageOriginalWidth); $heightPercent = $watermarkOriginalWidth / $imageOriginalWidth; $watermarkHeight = (int) ($watermarkOriginalHeight / $heightPercent); $image->setWatermarkHeigth($watermarkHeight); } } $opacity = 100; if ($this->isWatermarkTransparentEnabled()) { $opacity = 30; } $image->setWatermarkImageOpacity($opacity); $image->watermark($watermarkPath); $image->save($markingImagePath); return $this->pathToImageLink($markingImagePath); }
protected function _initVarienImage($basePath, $imageName, $cacheDir, $mode, $root) { if ($mode == 'catalog') { if (!($width = (int) Mage::getStoreConfig('collpur/general/thumbnailsize'))) { $width = self::CATALOG_IMAGE_SIZE; } } else { if (!($width = (int) Mage::getStoreConfig('collpur/general/imagesize'))) { $width = self::PRODUCT_IMAGE_SIZE; } } try { $image = new Varien_Image($root . DS . $basePath); $image->keepAspectRatio(true); $image->keepTransparency(true); $image->keepFrame(false); $image->quality(90); if ($image->getOriginalWidth() <= $width) { $width = $image->getOriginalWidth(); } $image->resize($width, $image->getOriginalHeight()); $image->save($root . DS . $cacheDir, $imageName); } catch (Exception $e) { Mage::log($e->getMessage()); } return $cacheDir . DS . $imageName; }