/** will be invoked by subclass */ function makeViewitem($item, $path_to_media) { $size = $this->size; $collection = $item->getCollection(); $target = $path_to_media . '/' . $collection->ascii_id . '/viewitem/' . $size . '.jpg'; if (!file_exists($target)) { copy($this->base_path . '/www/images/thumb_icons/' . $size . '.jpg', $target); } $media_file = new Dase_DBO_MediaFile($this->db); $media_file->item_id = $item->id; $media_file->filename = $size . '.jpg'; $media_file->width = 80; $media_file->height = 80; $media_file->mime_type = 'image/jpeg'; $media_file->size = 'viewitem'; $media_file->file_size = filesize($target); $media_file->p_collection_ascii_id = $collection->ascii_id; $media_file->p_serial_number = $item->serial_number; $media_file->insert(); Dase_Log::info(LOG_FILE, "created {$media_file->size} {$media_file->filename}"); }
function makeSizes($item, $path_to_media, $rotate) { $collection = $item->getCollection(); $image_properties = array('small' => array('geometry' => '640x480', 'max_height' => '480', 'size_tag' => '_640'), 'medium' => array('geometry' => '800x600', 'max_height' => '600', 'size_tag' => '_800'), 'large' => array('geometry' => '1024x768', 'max_height' => '768', 'size_tag' => '_1024'), 'full' => array('geometry' => '3600x2700', 'max_height' => '2700', 'size_tag' => '_3600')); $last_width = ''; $last_height = ''; $subdir = Dase_Util::getSubdir($item->serial_number); foreach ($image_properties as $size => $size_info) { $newimage = $path_to_media . '/' . $collection->ascii_id . '/' . $size . '/' . $subdir . '/' . $item->serial_number . $size_info['size_tag'] . '.jpg'; $subdir_path = $path_to_media . '/' . $collection->ascii_id . '/' . $size . '/' . $subdir; if (!file_exists($subdir_path)) { mkdir($subdir_path); } $command = CONVERT . " \"{$this->filepath}\" -format jpeg -rotate {$rotate} -resize '{$size_info['geometry']} >' -colorspace RGB {$newimage}"; $exec_output = array(); $results = exec($command, $exec_output); if (!file_exists($newimage)) { Dase_Log::debug(LOG_FILE, "failed to write {$size} image"); Dase_Log::debug(LOG_FILE, "UNSUCCESSFUL: {$command}"); } $file_info = getimagesize($newimage); //create the media_file entry $media_file = new Dase_DBO_MediaFile($this->db); $media_file->item_id = $item->id; $media_file->filename = $item->serial_number . $size_info['size_tag'] . ".jpg"; if ($file_info) { $media_file->width = $file_info[0]; $media_file->height = $file_info[1]; } if ($media_file->width <= $last_width && $media_file->height <= $last_height) { return; } $last_width = $media_file->width; $last_height = $media_file->height; $media_file->mime_type = 'image/jpeg'; $media_file->size = $size; $media_file->md5 = md5_file($newimage); $media_file->updated = date(DATE_ATOM); $media_file->file_size = filesize($newimage); $media_file->p_collection_ascii_id = $collection->ascii_id; $media_file->p_serial_number = $item->serial_number; $media_file->insert(); Dase_Log::info(LOG_FILE, "created {$media_file->size} {$media_file->filename}"); } return; }