public function saveAction() { if ($this->getRequest()->getPost()) { try { $postData = $this->getRequest()->getPost(); $imageModel = Mage::getModel('aitcg/mask'); if (isset($_FILES['filename']['name']) and file_exists($_FILES['filename']['tmp_name'])) { $uploader = new Varien_File_Uploader('filename'); $uploader->setAllowedExtensions(array('png')); $uploader->setAllowRenameFiles(true); $uploader->setFilesDispersion(false); $path = $imageModel->getImagesPath(); $uploader->save($path, preg_replace('/[^A-Za-z\\d\\.]/', '_', $_FILES['filename']['name'])); $postData['filename'] = $uploader->getUploadedFileName(); } $imageModel->load($this->getRequest()->getParam('imgid'))->setName($postData['name'])->setResize($postData['resize'])->setCategoryId($this->getRequest()->getParam('id')); if (isset($postData['filename'])) { if ($imageModel->getFilename()) { $fullPath = $imageModel->getImagesPath() . $imageModel->getFilename(); @unlink($fullPath); $fullPath = $imageModel->getImagesPath() . 'preview' . DS . $imageModel->getFilename(); @unlink($fullPath); } $imageModel->setFilename($postData['filename']); $thumb = new Varien_Image($imageModel->getImagesPath() . $imageModel->getFilename()); $thumb->open(); $thumb->keepAspectRatio(true); $thumb->keepFrame(true); $thumb->backgroundColor(array(255, 255, 255)); #$thumb->keepTransparency(true); $thumb->resize(135); $thumb->save($imageModel->getImagesPath() . 'preview' . DS . $imageModel->getFilename()); $imageModel->createInvertMask(); } $imageModel->save(); Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('adminhtml')->__('Item was successfully saved')); Mage::getSingleton('adminhtml/session')->setImageData(false); $this->_redirect('*/*/', array('id' => $this->getRequest()->getParam('id'))); return; } catch (Exception $e) { Mage::getSingleton('adminhtml/session')->addError($e->getMessage()); Mage::getSingleton('adminhtml/session')->setImageData($this->getRequest()->getPost()); $this->_redirect('*/*/edit', array('imgid' => $this->getRequest()->getParam('imgid'), 'id' => $this->getRequest()->getParam('id'))); return; } } $this->_redirect('*/*/', array('id' => $this->getRequest()->getParam('id'))); }
public function setFilenameWithUnlink($filename) { if ($this->getFilename() && $this->getFilename() != $filename) { $fullPath = $this->getImagesPath() . $this->getFilename(); @unlink($fullPath); $fullPath = $this->getImagesPath() . 'preview' . DS . $this->getFilename(); @unlink($fullPath); } $this->setFilename($filename); $thumb = new Varien_Image($this->getImagesPath() . $this->getFilename()); $thumb->open(); $thumb->keepAspectRatio(true); $thumb->keepFrame(true); $thumb->backgroundColor(array(255, 255, 255)); #$thumb->keepTransparency(true); $thumb->resize(135); $thumb->save($this->getImagesPath() . 'preview' . DS . $this->getFilename()); }
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); }