Exemplo n.º 1
0
 /** Build html and return it
  * 
  * @param array $imagedata
  */
 public function buildHtml($imagedata)
 {
     $image = '';
     foreach ($imagedata as $data) {
         if (!is_null($data['i'])) {
             $file = './images/thumbnails/' . $data['i'] . '.jpg';
             if (file_exists($file)) {
                 list($w, $h, $type, $attr) = getimagesize($file);
                 $image .= '<a href="/' . $data['imagedir'] . 'medium/' . strtolower($data['f']) . '" rel="lightbox" title="Medium sized image of: ' . $data['old_findID'] . ' a ' . $data['broadperiod'] . ' ' . $data['objecttype'] . '"><img src="' . $this->view->baseUrl() . '/images/thumbnails/' . $data['i'] . '.jpg" class="tmb" width="' . $w . '" height="' . $h . '" alt="' . ucfirst($data['objecttype']) . '" rel="license" resource="http://creativecommons.org/licenses/by/2.0/"/></a>';
                 echo $image;
             } elseif (!file_exists($file)) {
                 $location = './' . $data['imagedir'] . $data['f'];
                 $phMagick = new phMagick($location, $file);
                 $phMagick->resize(100, 0);
                 $phMagick->convert();
             } else {
                 echo '<p>Image unavailable.</p>';
             }
         }
     }
 }
Exemplo n.º 2
0
 /** Change staff profile image
  */
 public function logoAction()
 {
     $contacts = new Contacts();
     $people = $contacts->fetchRow($contacts->select()->where('dbaseID = ?', $this->getIdentityForForms()));
     $inst = $people->identifier;
     $this->view->inst = $inst;
     $logos = new InstLogos();
     $logoslisted = $logos->getLogosInst($inst);
     $this->view->logos = $logoslisted;
     $form = new AddStaffLogoForm();
     $form->details->setLegend('Add a logo: ');
     $this->view->form = $form;
     if ($this->_request->isPost()) {
         $formData = $this->_request->getPost();
         if ($form->isValid($formData)) {
             $upload = new Zend_File_Transfer_Adapter_Http();
             $upload->addValidator('NotExists', true, array(self::LOGOPATH));
             if ($upload->isValid()) {
                 $filename = $form->getValue('logo');
                 $largepath = self::LOGOPATH;
                 $original = $largepath . $filename;
                 $name = substr($filename, 0, strrpos($filename, '.'));
                 $ext = '.jpg';
                 $converted = $name . $ext;
                 $insertData = array();
                 $insertData['image'] = $converted;
                 $insertData['instID'] = $inst;
                 $insertData['created'] = $this->getTimeForForms();
                 $insertData['createdBy'] = $this->getIdentityForForms();
                 foreach ($insertData as $key => $value) {
                     if (is_null($value) || $value == "") {
                         unset($insertData[$key]);
                     }
                 }
                 $replace = $form->getValue('replace');
                 if ($replace == 1) {
                     foreach ($logoslisted as $l) {
                         unlink(self::LOGOPATH . 'thumbnails/' . $l['image']);
                         unlink(self::LOGOPATH . $l['image']);
                         unlink(self::LOGOPATH . 'resized/' . $l['image']);
                     }
                 }
                 $smallpath = self::LOGOPATH . 'thumbnails/' . $converted;
                 $mediumpath = self::LOGOPATH . 'resized/' . $converted;
                 //create medium size
                 $phMagick = new phMagick($original, $mediumpath);
                 $phMagick->resize(300, 0);
                 $phMagick->convert();
                 $phMagick = new phMagick($original, $smallpath);
                 $phMagick->resize(100, 0);
                 $phMagick->convert();
                 $logos->insert($insertData);
                 $upload->receive();
                 $this->getFlash()->addMessage('The image has been resized and zoomified!');
                 $this->redirect('/users/account/');
             } else {
                 $this->getFlash()->addMessage('There is a problem with your upload. Probably that image exists.');
                 $this->view->errors = $upload->getMessages();
             }
         } else {
             $form->populate($formData);
             $this->getFlash()->addMessage('Check your form for errors');
         }
     }
 }
Exemplo n.º 3
0
 /** Edit a specific image
  */
 public function editAction()
 {
     if ($this->_getParam('id', 0)) {
         $form = new ImageEditForm();
         $form->submit->setLabel('Update image..');
         $this->view->form = $form;
         if ($this->_request->isPost()) {
             $formData = $this->_request->getPost();
             if ($form->isValid($formData)) {
                 $updateData = array();
                 $updateData['label'] = $form->getValue('label');
                 $updateData['imagerights'] = $form->getValue('imagerights');
                 $updateData['county'] = $form->getValue('county');
                 $updateData['period'] = $form->getValue('period');
                 $updateData['updated'] = $this->getTimeForForms();
                 $updateData['updatedBy'] = $this->getIdentityForForms();
                 foreach ($updateData as $key => $value) {
                     if (is_null($value) || $value == "") {
                         unset($updateData[$key]);
                     }
                 }
                 $where = $this->_images->getAdapter()->quoteInto('imageID = ?', $this->_getParam('id'));
                 $rotate = $form->getValue('rotate');
                 $filename = $form->getValue('filename');
                 $imagedir = $form->getValue('imagedir');
                 $regenerate = $form->getValue('regenerate');
                 $path = './' . $imagedir . $filename;
                 $largepath = './' . $imagedir;
                 $mediumpath = './' . $imagedir . 'medium/';
                 $smallpath = './' . $imagedir . 'small/';
                 $displaypath = './' . $imagedir . 'display/';
                 $thumbpath = self::PATH . 'thumbnails/';
                 $id = $this->_getParam('id');
                 $name = substr($filename, 0, strrpos($filename, '.'));
                 $ext = '.jpg';
                 if (isset($rotate)) {
                     //rotate original
                     $phMagickOriginal = new phMagick($largepath . $filename, $largepath . $filename);
                     $phMagickOriginal->rotate($rotate);
                     //rotate image for medium
                     if (file_exists($mediumpath . $name . $ext)) {
                         $phMagickMedium = new phMagick($mediumpath . $name . $ext, $mediumpath . $name . $ext);
                         $phMagickMedium->rotate($rotate);
                         //	Zend_Debug::dump($phMagickMedium);
                     } else {
                         $phMagickMediumCreate = new phMagick($largepath . $filename, $mediumpath . $name . $ext);
                         $phMagickMediumCreate->resize(500, 0);
                         $phMagickMediumCreate->rotate($rotate);
                         $phMagickMediumCreate->convert();
                         //	Zend_Debug::dump($phMagickMediumCreate);
                     }
                     //rotate small image
                     if (file_exists($smallpath . $name . $ext)) {
                         $phMagickSmall = new phMagick($smallpath . $name . $ext, $smallpath . $name . $ext);
                         $phMagickSmall->rotate($rotate);
                         //Zend_Debug::dump($phMagickSmall);
                     } else {
                         $phMagickSmallCreate = new phMagick($largepath . $filename, $smallpath . $name . $ext);
                         $phMagickSmallCreate->resize(40, 0);
                         $phMagickSmallCreate->rotate($rotate);
                         $phMagickSmallCreate->convert();
                         //Zend_Debug::dump($phMagickSmallCreate);
                     }
                     //rotate display image
                     if (file_exists($displaypath . $name . $ext)) {
                         $phMagickDisplay = new phMagick($displaypath . $name . $ext, $displaypath . $name . $ext);
                         $phMagickDisplay->rotate($rotate);
                         //	Zend_Debug::dump($phMagickDisplay);
                     } else {
                         $phMagickDisplayCreate = new phMagick($largepath . $name . $ext, $displaypath . $name . $ext);
                         $phMagickDisplayCreate->resize(0, 150);
                         $phMagickDisplayCreate->rotate($rotate);
                         $phMagickDisplayCreate->convert();
                         //Zend_Debug::dump($phMagickDisplayCreate);
                     }
                     //rotate thumbnail
                     if (file_exists($thumbpath . $id . '.jpg')) {
                         $phMagickThumb = new phMagick($thumbpath . $id . '.jpg', $thumbpath . $id . '.jpg');
                         $phMagickThumb->rotate($rotate);
                         //Zend_Debug::dump($phMagickThumb);
                     } else {
                         $thumbpath = self::PATH . 'thumbnails/';
                         $originalpath = $path;
                         $phMagickRegen = new phMagick($originalpath, $thumbpath . $id . '.jpg');
                         $phMagickRegen->resize(100, 0);
                         $phMagickRegen->convert();
                     }
                 }
                 if (isset($regenerate)) {
                     $thumbpath = self::PATH . 'thumbnails/';
                     $originalpath = $path;
                     $phMagickRegen = new phMagick($originalpath, $thumbpath . $id . '.jpg');
                     $phMagickRegen->resize(100, 0);
                     $phMagickRegen->convert();
                 }
                 $update = $this->_images->update($updateData, $where);
                 //Update the solr instance
                 $this->_helper->solrUpdater->update('beoimages', $this->_getParam('id'));
                 $this->_helper->cache->remove('findtoimage' . $this->_getParam('id'));
                 $this->_flashMessenger->addMessage('Image and metadata updated!');
                 $this->_redirect(self::REDIRECT . 'image/id/' . $this->_getParam('id'));
             } else {
                 $form->populate($form->getValues());
             }
         } else {
             $id = (int) $this->_request->getParam('id', 0);
             if ($id > 0) {
                 $image = $this->_images->getImage($id);
                 $form->populate($image['0']);
             }
         }
     } else {
         throw new Exception($this->_missingParameter);
     }
 }
Exemplo n.º 4
0
    /** Give them a logo
     */
    public function logoAction()
    {
        $form = new AddStaffLogoForm();
        $form->details->setLegend('Add a logo: ');
        $this->view->form = $form;
        if ($this->_request->isPost()) {
            $formData = $this->_request->getPost();
            if ($form->isValid($formData)) {
                $upload = new Zend_File_Transfer_Adapter_Http();
                $upload->addValidator('NotExists', true, array(self::LOGOPATH));
                if ($upload->isValid()) {
                    $filename = $form->getValue('image');
                    $insertData = array();
                    $insertData['host'] = $filename;
                    $insertData['updated'] = $this->getTimeForForms();
                    $insertData['updatedBy'] = $this->getIdentityForForms();
                    foreach ($insertData as $key => $value) {
                        if (is_null($value) || $value == "") {
                            unset($insertData[$key]);
                        }
                    }
                    $original = self::LOGOPATH . $filename;
                    $name = substr($filename, 0, strrpos($filename, '.'));
                    $ext = '.jpg';
                    $converted = $name . $ext;
                    $smallpath = self::LOGOPATH . 'thumbnails/' . $converted;
                    $mediumpath = self::LOGOPATH . 'resized/' . $converted;
                    //create medium size
                    $phMagick = new phMagick($original, $mediumpath);
                    $phMagick->resize(300, 0);
                    $phMagick->convert();
                    /* Zend_Debug::dump($convertsmall);
                    	Zend_Debug::dump($phMagick);
                    	exit; */
                    $phMagick = new phMagick($original, $smallpath);
                    $phMagick->resize(100, 0);
                    $phMagick->convert();
                    $regions = new StaffRegions();
                    $where = array();
                    $where[] = $regions->getAdapter()->quoteInto('id = ?', $this->_getParam('id'));
                    $regions->update($insertData, $where);
                    $upload->receive();
                    $this->_flashMessenger->addMessage('The image has been resized and zoomified!');
                    $this->_redirect('/admin/contacts/institution/id/' . $this->_getParam('id'));
                } else {
                    $this->_flashMessenger->addMessage('There is a problem with your upload. 
	Probably that image exists.');
                    $this->view->errors = $upload->getMessages();
                }
            } else {
                $form->populate($formData);
                $this->_flashMessenger->addMessage('Check your form for errors');
            }
        }
    }
Exemplo n.º 5
0
 /**
  * watermark
  * @author Thomas Schedler <*****@*****.**>
  * @version 1.0
  */
 public function watermark($watermarkImage, $gravity, $transparency = 50)
 {
     $arrImgDimention = $this->getDimentions();
     $watermark = new phMagick();
     $watermark->setSource($watermarkImage);
     $arrWatermarkDimention = $watermark->getDimentions();
     $dblXFact = $arrImgDimention[0] / $arrWatermarkDimention[0];
     // width
     $dblYFact = $arrImgDimention[1] / $arrWatermarkDimention[1];
     // height
     if ($dblXFact < 1 || $dblYFact < 1) {
         $strDesintaion = $this->strRenderTmpDir . uniqid() . '.' . pathinfo($watermarkImage, PATHINFO_EXTENSION);
         $watermark->setDestination($strDesintaion);
         if ($dblXFact < $dblYFact) {
             $intWidth = (int) ($arrImgDimention[0] * 0.9);
             $watermark->resize($intWidth);
         } else {
             $intHeight = (int) ($arrImgDimention[1] * 0.9);
             $watermark->resize('', $intHeight);
         }
         $watermarkImage = $watermark->getDestination();
     }
     parent::watermark($watermarkImage, $gravity, $transparency);
     //remove tmp file
     if (isset($strDesintaion)) {
         unlink($strDesintaion);
     }
 }
 /**
  * Create all the normalized sizes for the Image. Called by postSave().
  */
 public function make_sizes()
 {
     if (!isset($this->_set_image)) {
         Carper::croak("image not set for " . $this->img_uuid);
     }
     $dir = self::get_directory($this->img_ref_type, $this->img_uuid);
     $ext = self::$CONFIG[$this->img_ref_type]['convert_to'];
     $name = self::$CONFIG[$this->img_ref_type]['filename'];
     // remove old files, and copy a new one
     array_map("unlink", glob("{$dir}/*"));
     $fname = $this->img_file_name;
     copy($this->_set_image, "{$dir}{$fname}");
     // convert at full resolution
     $p = new phMagick($this->_set_image, "{$dir}{$name}.{$ext}");
     $p->convert();
     // resized versions
     foreach (self::$CONFIG[$this->img_ref_type]['sizes'] as $size => $dim) {
         $p = new phMagick($this->_set_image, "{$dir}{$name}_{$size}.{$ext}");
         if ($dim[0] == 0 || $dim[1] == 0) {
             $p->resize($dim[0], $dim[1]);
         } elseif (is_a($this, 'ImageOrgLogo')) {
             $p->resize($dim[0], $dim[1]);
         } else {
             $p->resizeExactly($dim[0], $dim[1]);
         }
     }
     $this->_set_image = false;
 }