示例#1
0
 /**
  * Estimate an upper limit of the processable image dimensions.
  * This will be in the scale of ~40 MP for 256 MB memory_limit and
  * ~16 MP for 128 MB. See Okapi::init_internals() for current memory_limit.
  */
 private static function max_pixels($base64_image)
 {
     $bytes_per_pixel = 5;
     # GD needs 5 bytes per pixel for "true color"
     $available_memory = Okapi::php_ini_get_bytes('memory_limit') - memory_get_usage();
     $available_memory -= 16 * 1024 * 1024;
     # reserve
     $available_memory -= strlen($base64_image);
     # will be copied for EXIF processing
     $available_memory -= 3 * $bytes_per_pixel * Settings::get('IMAGE_MAX_PIXEL_COUNT');
     # processing buffers
     return floor($available_memory / $bytes_per_pixel);
 }