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')));
 }
Exemple #2
0
 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());
 }
Exemple #3
0
 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);
 }