Example #1
0
	protected function save ($image_data, $username, $timer = 0) {
		
		$image_file = $this->get_temp_file($image_data);		
		$image = new Transform_Image($image_file);
		
		$format = strtolower($image->get_format());
		$time = time();
		
		$save_full = IMAGES.SL.'gallery'.SL.$this->user_id.SL.'full'.SL.$time.'.'.$format;
		$save_resized = IMAGES.SL.'gallery'.SL.$this->user_id.SL.'resized'.SL.$time.'.jpg';
		$save_large_thumbnail = IMAGES.SL.'gallery'.SL.$this->user_id.SL.'large_thumbnail'.SL.$time.'.jpg';
		$save_thumbnail = IMAGES.SL.'gallery'.SL.$this->user_id.SL.'thumbnail'.SL.$time.'.jpg';		
		
		$this->test_upload_dirs('gallery', $this->user_id, 'full');
		$this->test_upload_dirs('gallery', $this->user_id, 'resized');
		$this->test_upload_dirs('gallery', $this->user_id, 'large_thumbnail');
		$this->test_upload_dirs('gallery', $this->user_id, 'thumbnail');		
		
		$resized = 0;
		$resized_settings = Config::image('resized');
		$large_thumbnail_settings = Config::image('large_thumbnail');
		$thumbnail_settings = Config::image('thumbnail');
		
		$image->save($save_full);
		
		if (
			$image->get_width() > $resized_settings['width'] ||
			$image->get_height() > $resized_settings['height']
		) {
			$resized = min(
				$resized_settings['width'] / $image->get_width(),
				$resized_settings['height'] / $image->get_height()
			);			
			
			$image->target($save_resized)->scale(
				array(
					$resized_settings['width'], 
					$resized_settings['height']
				),
				$resized_settings['compression']
			);
			$image = new Transform_Image($save_resized);
		}
		
		$image->target($save_large_thumbnail)->scale(
			array(
				$large_thumbnail_settings['width'], 
				$large_thumbnail_settings['height']
			),
			$large_thumbnail_settings['compression'],
			true
		);
		$image = new Transform_Image($save_large_thumbnail);
		
		$image->target($save_thumbnail)->scale(
			array(
				$thumbnail_settings['width'], 
				$thumbnail_settings['height']
			),
			$thumbnail_settings['compression'],
			true
		);
		
		Art_Input::save($save_full, $username, $resized, $this->user_id, $timer);
	}