Added ability to choose between resolution modulus
This commit is contained in:
		
					parent
					
						
							
								f623bb9107
							
						
					
				
			
			
				commit
				
					
						d7c7e74c25
					
				
			
		
					 1 changed files with 8 additions and 25 deletions
				
			
		|  | @ -332,9 +332,8 @@ class FFMpeg extends Binary | |||
| 
 | ||||
|             if ($originalHeight !== null && $originalWidth !== null) { | ||||
|                 $dimensions = $format->getComputedDimensions($originalWidth, $originalHeight); | ||||
| 
 | ||||
|                 $width = $this->getMultiple($dimensions->getWidth(), 16); | ||||
|                 $height = $this->getMultiple($dimensions->getHeight(), 16); | ||||
|                 $width = $this->getMultiple($dimensions->getWidth(), $format->getModulus()); | ||||
|                 $height = $this->getMultiple($dimensions->getHeight(), $format->getModulus()); | ||||
| 
 | ||||
|                 $builder->add('-s')->add($width . 'x' . $height); | ||||
|             } | ||||
|  | @ -455,31 +454,15 @@ class FFMpeg extends Binary | |||
|      */ | ||||
|     protected function getMultiple($value, $multiple) | ||||
|     { | ||||
|         $modulo = $value % $multiple; | ||||
| 
 | ||||
|         $ret = (int) $multiple; | ||||
| 
 | ||||
|         $halfDistance = $multiple / 2; | ||||
|         if ($modulo <= $halfDistance) | ||||
|             $bound = 'bottom'; | ||||
|         else | ||||
|             $bound = 'top'; | ||||
| 
 | ||||
|         switch ($bound) { | ||||
|             default: | ||||
|             case 'top': | ||||
|                 $ret = $value + $multiple - $modulo; | ||||
|                 break; | ||||
|             case 'bottom': | ||||
|                 $ret = $value - $modulo; | ||||
|                 break; | ||||
|         if (($value % $multiple) === 0){ | ||||
|             return $value; | ||||
|         } | ||||
| 
 | ||||
|         if ($ret < $multiple) { | ||||
|             $ret = (int) $multiple; | ||||
|         } | ||||
|         do { | ||||
|             $value++; | ||||
|         } while (($value % $multiple) != 0); | ||||
| 
 | ||||
|         return (int) $ret; | ||||
|         return $value; | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue