Самый быстрый способ определить разрешение изображения и тип файла в PHP или командной строке Unix?

Оператор точки, также известный как разделитель или период, используемый для разделения переменной или метода из ссылочной переменной.

Доступ к статическим переменным или методам можно получить с помощью имени класса.

Код, который находится за пределами класса объекта, должен использовать ссылку на объект или выражение, за которым следует оператор точки (.), За которым следует простое имя поля, как в

objectReference.fieldName

Мы используем ссылку на объект для вызова метод объекта. Приложите простое имя метода к ссылке на объект с оператором промежуточной точки (.), Как в

objectReference.methodName(argumentList);

. В вышеупомянутом коде p.great () может быть используется для вызова метода great () для объекта p и p.value используется для доступа к значению переменной экземпляра ].

Ссылка: https://docs.oracle.com/javase/tutorial/java/javaOO/usingobject.html

Полный справочник, Книга Герберта Шильдта

5
задан Peter 20 October 2011 в 15:11
поделиться

6 ответов

Извините я не могу добавить это как комментарий к предыдущему ответу, но у меня нет представителя, делающего некоторое быстрое и грязное тестирование, я также нашел, что должностное лицо ("определяют - ping..., приблизительно в 20 раз быстрее, чем без - ping. Но getimagesize (), кажется, приблизительно в 200 раз быстрее все еще.

Таким образом, я сказал бы, что getimagesize () является более быстрым методом. Я только протестировал на jpg а не на png.

тест справедлив

$files = array('2819547919_db7466149b_o_d.jpg', 'GP1-green2.jpg', 'aegeri-lake-switzerland.JPG');
foreach($files as $file){
  $size2 = array();
  $size3 = array();
  $time1 = microtime();
  $size = getimagesize($file);
  $time1 = microtime() - $time1;
  print "$time1 \n";
  $time2 = microtime();
  exec("identify -ping $file", $size2);
  $time2 = microtime() - $time2;
  print $time2/$time1 . "\n";
  $time2 = microtime();
  exec("identify $file", $size3);
  $time2 = microtime() - $time2;
  print $time2/$time1 . "\n";
  print_r($size);
  print_r($size2);
  print_r($size3);
}
3
ответ дан 18 December 2019 в 08:33
поделиться

Вы попробовали

identify -ping filename.png

?

4
ответ дан 18 December 2019 в 08:33
поделиться

При использовании PHP с поддержкой GD можно попробовать getimagesize ().

7
ответ дан 18 December 2019 в 08:33
поделиться

Для меня важно, чтобы тип файла был определен путем рассмотрения заголовков файла и не просто расширения.

Для этого можно использовать команду Unix 'файла' (orsome php функция, которая реализует ту же функциональность).

/tmp$ file stackoverflow-logo-250.png
stackoverflow-logo-250.png: PNG image data, 250 x 70, 8-bit colormap, non-interlaced

2
ответ дан 18 December 2019 в 08:33
поделиться

exif_imagetype () быстрее, чем getimagesize ().

$filename = "somefile";
$data = exif_imagetype ($filename);
отзовитесь эхом" <ПРЕД>";
print_r ($data);
отзовитесь эхом" </ПРЕД>";

вывод:

Array (
        [FileName] => somefile
        [FileDateTime] => 1234895396
        [FileSize] => 15427
        [FileType] => 2
        [MimeType] => image/jpeg
        [SectionsFound] => 
        [COMPUTED] => Array
            (
                [html] => width="229" height="300"
                [Height] => 300
                [Width] => 229
                [IsColor] => 1
        )
)
1
ответ дан 18 December 2019 в 08:33
поделиться

На самом деле, для использования getimagesize () у Вас не должно быть GD, скомпилированного в.

Можно также использовать mime_content_type () для получения типа MIME.

2
ответ дан 18 December 2019 в 08:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: