function resize () { $key = (defined('SECRET_AUTH_KEY') && SECRET_AUTH_KEY != '')?SECRET_AUTH_KEY:DB_PASSWORD; $message = $this->Image->id.','.implode(',',$this->parameters); if ($this->valid != crc32($key.$message)) { header("HTTP/1.1 404 Not Found"); die(''); } require_once(ECART_PATH."/core/model/Image.php"); $Resized = new ImageProcessor($this->Image->retrieve(),$this->Image->width,$this->Image->height); $scaled = $this->Image->scaled($this->width,$this->height,$this->scale); $alpha = ($this->Image->mime == "image/png"); $Resized->scale($scaled['width'],$scaled['height'],$this->scale,$alpha,$this->fill); // Post sharpen if ($this->sharpen !== false) $Resized->UnsharpMask($this->sharpen); $ResizedImage = new ImageAsset(); $ResizedImage->copydata($this->Image,false,array()); $ResizedImage->name = 'cache_'.implode('_',$this->parameters); $ResizedImage->filename = $ResizedImage->name.'_'.$ResizedImage->filename; $ResizedImage->parent = $this->Image->id; $ResizedImage->context = 'image'; $ResizedImage->mime = "image/jpeg"; $ResizedImage->id = false; $ResizedImage->width = $Resized->width; $ResizedImage->height = $Resized->height; foreach ($this->args as $index => $arg) $ResizedImage->settings[$arg] = isset($this->parameters[$index])?intval($this->parameters[$index]):false; $ResizedImage->data = $Resized->imagefile($this->quality); if (empty($ResizedImage->data)) return false; $ResizedImage->size = strlen($ResizedImage->data); $this->Image = $ResizedImage; if ($ResizedImage->store( $ResizedImage->data ) === false) return false; $ResizedImage->save(); }
/** * Updates image details for all cached images of the product * * @author Jonathan Davis * @since 1.0 * * @param array image record ids * @return void **/ public function update_images($images) { if (!is_array($images)) { return; } foreach ($images as $img) { $Image = new ProductImage($img['id']); $Image->title = stripslashes($img['title']); $Image->alt = stripslashes($img['alt']); if (!empty($img['cropping'])) { if (!class_exists('ImageProcessor')) { require SHOPP_MODEL_PATH . "/Image.php"; } foreach ($img['cropping'] as $id => $cropping) { if (empty($cropping)) { continue; } $Cropped = new ProductImage($id); list($Cropped->settings['dx'], $Cropped->settings['dy'], $Cropped->settings['cropscale']) = explode(',', $cropping); extract($Cropped->settings); $Resized = new ImageProcessor($Image->retrieve(), $Image->width, $Image->height); $scaled = $Image->scaled($width, $height, $scale); $scale = ImageAsset::$defaults['scaling'][$scale]; $quality = $quality === false ? ImageAsset::$defaults['quality'] : $quality; $Resized->scale($scaled['width'], $scaled['height'], $scale, $alpha, $fill, (int) $dx, (int) $dy, (double) $cropscale); // Post sharpen if ($sharpen !== false) { $Resized->UnsharpMask($sharpen); } $Cropped->data = $Resized->imagefile($quality); if (empty($Cropped->data)) { return false; } $Cropped->size = strlen($Cropped->data); if ($Cropped->store($Cropped->data) === false) { return false; } $Cropped->save(); } } $Image->save(); } }
/** * update_images() * Updates the image details for all cached images */ function update_images ($images) { if (!is_array($images)) return false; foreach ($images as $img) { $Image = new ProductImage($img['id']); $Image->title = $img['title']; $Image->alt = $img['alt']; if (!empty($img['cropping'])) { require_once(ECART_PATH."/core/model/Image.php"); foreach ($img['cropping'] as $id => $cropping) { if (empty($cropping)) continue; $Cropped = new ProductImage($id); list($Cropped->settings['dx'], $Cropped->settings['dy'], $Cropped->settings['cropscale']) = explode(',', $cropping); extract($Cropped->settings); $Resized = new ImageProcessor($Image->retrieve(),$Image->width,$Image->height); $scaled = $Image->scaled($width,$height,$scale); $scale = $Cropped->_scaling[$scale]; $quality = ($quality === false)?$Cropped->_quality:$quality; $Resized->scale($scaled['width'],$scaled['height'],$scale,$alpha,$fill,(int)$dx,(int)$dy,(float)$cropscale); // Post sharpen if ($sharpen !== false) $Resized->UnsharpMask($sharpen); $Cropped->data = $Resized->imagefile($quality); if (empty($Cropped->data)) return false; $Cropped->size = strlen($Cropped->data); if ($Cropped->store( $Cropped->data ) === false) return false; $Cropped->save(); } } $Image->save(); } return true; }
public function resize() { if ($this->valid != ImageAsset::checksum($this->Image->id, $this->parameters)) { header('HTTP/1.1 401 Unauthorized'); die('<h1>Not Authorized</h1>'); } do_action('shopp_imageserver_preprocess', $this->Image, $this->parameters); $Resized = new ImageProcessor($this->Image->retrieve(), $this->Image->width, $this->Image->height); $scaled = $this->Image->scaled($this->width, $this->height, $this->scale); $alpha = 'image/png' == $this->Image->mime; if (-1 == $this->fill) { $alpha = true; } $Resized->scale($scaled['width'], $scaled['height'], $this->scale, $alpha, $this->fill); // Post sharpen if (!$alpha && $this->sharpen > 0) { $Resized->sharpen($this->sharpen); } $ResizedImage = new ImageAsset(); $ResizedImage->copydata($this->Image, false, array()); $ResizedImage->name = 'cache_' . implode('_', $this->parameters); $ResizedImage->filename = $ResizedImage->name . '_' . $ResizedImage->filename; $ResizedImage->parent = $this->Image->id; $ResizedImage->context = 'image'; $ResizedImage->mime = 'image/jpeg'; $ResizedImage->id = false; $ResizedImage->width = $Resized->width(); $ResizedImage->height = $Resized->height(); $ResizedImage->settings = $this->parameters; do_action('shopp_imageserver_processed', $ResizedImage, $this->parameters); $ResizedImage->data = $Resized->imagefile($this->quality); if (empty($ResizedImage->data)) { return false; } $ResizedImage->size = strlen($ResizedImage->data); $this->Image = $ResizedImage; if (false === $ResizedImage->store($ResizedImage->data)) { return false; } $ResizedImage->save(); }