Определите размер изображения с помощью ImgScalr

Привет! В настоящее время я использую библиотеку ImgScalr, и у меня мало маркеров для загрузки изображений из документа HTML, однако иногда изображения имеют низкое качество, и если это так, мне нужно отсканировать через источник HTML, чтобы загрузить все изображения и использовать один с самым большим размером в байтах.

Я использую библиотеку ImgScalr, мне нужно знать, как я могу проверить размер изображения в байтах, чтобы определить, соответствует ли оно моим требованиям к качеству. Это правильный подход?

Благодарю.

2 ответа

Решение

Автор imgscalr здесь - библиотека ориентирована только на операции с изображениями, работая с несжатыми объектами BufferedImage.

Чтобы узнать фактический размер файла, вы просто загрузите все изображения со страницы HTML в каталог, а затем выполните итерации по файлам, используя стандартные операции с файлами Java, чтобы определить размер файла.

Если вы используете Java 7+, вы можете использовать удобную операцию Files.size.

$dir = "/path/to/image/directory/*.jpg";   //Path to image folder and image type extension
$list = array();                           //Create and empty array

foreach(glob($dir) as $checkimages){
  $size = filesize($checkimages);
  if($size > 500000){                      //enter file size minimum
     $list[] = $checkimages;                //final array contains the images you seek
  }
}

Это использует PHP для поиска всех изображений в папке, а затем проверяет каждое на минимальный размер файла, если соответствует критериям вставки в новый массив.

//Output to HTML each file in array
foreach($list as $output){
    echo $output.'<br/>';
}

// or 
print_r($list);
Другие вопросы по тегам