Приложение для камеры

Если вы уже спрятали старые гаджеты, самое время снова достать их, ведь из смартфона или планшета очень просто сделать устройство для наблюдения. Вам потребуется только скачать и установить нужную программу. Использовать телефон как камеру видеонаблюдения поможет приложение Alfred для Android или его версия для iOS.

У этого приложения есть два больших плюса. Во-первых, его легко установить и с ним просто работать. А, во-вторых, оно позволит вам наблюдать за камерой даже с компьютера в режиме Videostream.

Как настроить IP-камеру на Android

Установить приложение на Android-гаджет можно с помощью аккаунта Google. После установки приложения надо решить, как вы будете использовать телефон: в качестве камеры наблюдения или приемной станции.

Мобильный телефон может снимать как веб-камера или принимать трансляции с другого устройства
Мобильный телефон может снимать как веб-камера или принимать трансляции с другого устройства

Зайдите в аккаунт Google, к которому привязан гаджет-камера, и настройте разрешения доступа для аккаунтов, с которых будут смотреть ваш стрим. В настройках приложения можно дополнительно активировать датчик движения и выбрать, будет ли записываться звук. Чтобы избежать несанкционированного доступа к камере телефона, мы рекомендуем вам установить пароль для блокировки.

С помощью аккаунта Google вы можете получить доступ ко всему, что снимает камера, даже находясь за пределами домашней сети. Это работает либо с помощью другого андроид-устройства, либо через браузер на сайте alfred.camera. Особенно удобно, что кроме видео в режиме «live», вы можете увидеть и текущий уровень заряда аккумулятора снимающего телефона.

Как сделать камеру наблюдения из смартфона
Вы можете получить доступ к трансляции даже с компьютера

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

Во-вторых: как бы классно не выглядело приложение, которое мы советуем, его разработчик хочет зарабатывать на нем деньги. Очевидно, что вместе с приложением вы получите не только камеру наблюдения, но и рекламу. Правда, от нее можно избавиться, купив что-нибудь в приложении.

Ваши данные в безопасности

Остается открытым еще один серьезный вопрос: не пострадает ли ваша конфиденциальность? Производитель дает на него довольно подробный ответ. Так при стриме в режиме «live» данные идут через пиринговую сеть и не попадают на сервера провайдера. Но провайдер имеет право обрабатывать некоторые персональные данные: например, местонахождение камеры. Поэтому, прежде чем установить приложение, загляните в условия его использования.

Авторизация через аккаунт Google в плане безопасности данных кажется нам вполне надежной. Ведь этот способ аутентификации является более безопасным, чем любое программное решение свободного разработчика. А если вы не хотите привязывать свой основной аккаунт к приложению для видеонаблюдения, то всегда можно создать второй.

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

Как использовать старый смартфон: 5 практических советов
Тест и обзор камеры наблюдения Bosch Smart Home 360°

Котаны, читайте на здоровье!

×

Статья проплачена кошками — всемирно известными производителями котят.

Если статья вам понравилась, то можете поддержать проект.

Закрыть

Программное включение приложения Камера
Делаем фотографии и сохраняем результат. Простой пример
Миниатюра и полноразмерное изображение
Запуск камеры в нужном режиме
Снимаем и кадрируем

Практически все современные телефоны и планшеты снабжаются камерами, что позволяет фотографировать любимых котиков.

Сначала сделаем небольшие приготовления. Есть класс устройств, у которых нет камер, например, электронные ридеры. Чтобы пользователи этих устройств не скачивали зря ваше приложение, которое окажется для них бесполезным, пропишем в манифесте требование наличия камеры.

<uses-feature android:name="android.hardware.camera" android:required="true" />

Если камера в вашем приложении выполняет вспомогательную функцию, а приложение может работать и без неё, то установите значение false в предыдущем коде и проверяйте наличие камеры программно. Если камеры нет, то отключайте возможность съёмок для пользователя.

// Kotlinval packageManager = packageManagerval isCamera = packageManager.hasSystemFeature(PackageManager.FEATURE_CAMERA_ANY)println(isCamera)// JavaPackageManager packageManager = getPackageManager();boolean isCamera = packageManager.hasSystemFeature(PackageManager.FEATURE_CAMERA_ANY);System.out.println(isCamera);

Программное включение приложения Камера

Раньше на старых телефонах можно было программно запустить из своей программы системное приложение «Камера» (в этом случае вам не понадобятся дополнительные разрешения) через намерение.

Intent intent = new Intent();intent.setAction(Intent.ACTION_CAMERA_BUTTON);intent.putExtra(Intent.EXTRA_KEY_EVENT, new KeyEvent(KeyEvent.ACTION_DOWN,KeyEvent.KEYCODE_CAMERA));sendOrderedBroadcast(intent, null);

Особого смысла в этом нет, так как результат не возвращается в приложение. Но вполне подходило для быстрого запуска камеры. Впрочем, сейчас этот код может и не сработать.

А вообще у пользователя могут стоять разные приложения, способные фотографировать. Тогда у вас будет появляться диалоговое окно с выбором нужного приложения. Они все имеют в своём составе такую запись в манифесте (для общего развития):

<action android:name="android.media.action.IMAGE_CAPTURE"/><category android:name="android.intent.category.DEFAULT"/>

У Гугла есть своя программа Google Камера. Запустим её, зная имя пакета.

Intent intent = getIntent();intent.setComponent(null);intent.setPackage("com.google.android.GoogleCamera");intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);startActivity(intent);

При вызове метода getIntent() вместо new Intent() приложение запускалось сразу, иначе — выводилось диалоговое окно выбора программы из списка. Также нужно быть уверенным, что программа установлена, в примере нет кода проверки.

Делаем фотографии и сохраняем результат. Простой пример

Просто включить камеру не слишком интересно. Рассмотрим практичный пример, когда мы программно запустим приложение «Камера», а полученную фотографию сохраним в папке. Сначала сделаем простой вариант, а потом напишем более сложное приложение.

Используйте статическую константу MediaStore.ACTION_IMAGE_CAPTURE для создания намерения, которое потом нужно передать методу startActivityForResult(). Разместите на форме кнопку и ImageView, в который будем помещать полученный снимок. Этот код запускает стандартное приложение камеры. Полученное с камеры изображение можно обработать в методе onActivityResult():

Не включайте в манифест разрешение на работу с камерой, иначе получите крах приложения.

// Kotlin// Если этот код работает, его написал Александр Климов,// а если нет, то не знаю, кто его писал.package ru.alexanderklimov.photoimport android.content.ActivityNotFoundExceptionimport android.content.Intentimport android.graphics.Bitmapimport android.os.Bundleimport android.provider.MediaStoreimport android.widget.Buttonimport android.widget.ImageViewimport androidx.appcompat.app.AppCompatActivityclass MainActivity : AppCompatActivity() { private val REQUEST_TAKE_PHOTO = 1 private lateinit var imageView: ImageView override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) imageView = findViewById(R.id.imageView) val button: Button = findViewById(R.id.button) button.setOnClickListener { val takePictureIntent = Intent(MediaStore.ACTION_IMAGE_CAPTURE) try { startActivityForResult(takePictureIntent, REQUEST_TAKE_PHOTO) } catch (e: ActivityNotFoundException) { e.printStackTrace() } } } override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) if (requestCode == REQUEST_TAKE_PHOTO && resultCode == RESULT_OK) {// Фотка сделана, извлекаем миниатюру картинки val thumbnailBitmap = data?.extras?.get("data") as Bitmap imageView.setImageBitmap(thumbnailBitmap) }// Другой вариант с применением whenwhen(requestCode){ REQUEST_TAKE_PHOTO ->{ if(resultCode == Activity.RESULT_OK && data !== null){ imageView.setImageBitmap(data.extras?.get("data") as Bitmap) } } else ->{ Toast.makeText(this, "Wrong request code", Toast.LENGTH_SHORT).show() } } }}// Javaprivate static final int REQUEST_TAKE_PHOTO = 1;private ImageView imageView;// в методе onCreate()imageView = findViewById(R.id.imageView);// Щелчок кнопкиpublic void onClick(View v) {Intent takePhotoIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); try{ startActivityForResult(takePhotoIntent, REQUEST_TAKE_PHOTO); }catch (ActivityNotFoundException e){ e.printStackTrace(); }}@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == REQUEST_TAKE_PHOTO && resultCode == RESULT_OK) {// Фотка сделана, извлекаем миниатюру картинки Bundle extras = data.getExtras(); Bitmap thumbnailBitmap = (Bitmap) extras.get("data"); imageView.setImageBitmap(thumbnailBitmap); }}

Данный код запустит приложение, работающее с камерой, позволяя пользователю поменять настройки изображения, что освобождает вас от необходимости создавать своё собственное приложение для этих нужд. Вполне возможно, что у вас будет несколько приложений, умеющих делать фотографии, тогда сначала появится окно выбора программы.

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

По умолчанию фотография возвращается в виде объекта Bitmap, содержащего миниатюру. Этот объект находится в параметре data, передаваемом в метод onActivityResult(). Чтобы получить миниатюру в виде объекта Bitmap, нужно вызвать метод getParcelableExtra() из намерения, передав ему строковое значение data. В примере использовался упрощённый вариант.

Миниатюра и полноразмерное изображение

Если вы укажете исходящий путь URI с помощью параметра MediaStore.EXTRA_OUTPUT в запущенном намерении, полноразмерное изображение, снятое камерой, сохранится в заданном месте. В таком случае в метод onActivityResult() не будет передана миниатюра, а итоговое намерение продемонстрирует значение null.

В следующем примере показано, как при создании снимка получать миниатюру или полноценное изображение, используя намерение. Изображение будет сохранено во внешнем хранилище под именем test.jpg.

Пример работает на устройствах до Android 6.0, потом появились различные системные ограничения и нужно писать дополнительный код.

Добавим разрешение на запись файла в хранилище.

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
В примере используются устаревшие пакеты android.support, используйте пакеты AndroidX
// Если этот код работает, его написал Александр Климов,// а если нет, то не знаю, кто его писал.package ru.alexanderklimov.photocamera;import android.content.Intent;import android.graphics.Bitmap;import android.net.Uri;import android.os.Bundle;import android.os.Environment;import android.provider.MediaStore;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.ImageView;import java.io.File;public class MainActivity extends AppCompatActivity { private static int TAKE_PICTURE_REQUEST = 1; private ImageView imageView; private Uri outputFileUri; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); imageView = findViewById(R.id.imageView); } public void onClick(View view) { //getThumbnailPicture(); saveFullImage(); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == TAKE_PICTURE_REQUEST && resultCode == RESULT_OK) { // Проверяем, содержит ли результат маленькую картинку if (data != null) { if (data.hasExtra("data")) { Bitmap thumbnailBitmap = data.getParcelableExtra("data"); // Какие-то действия с миниатюрой imageView.setImageBitmap(thumbnailBitmap); } } else { // Какие-то действия с полноценным изображением, // сохранённым по адресу outputFileUri imageView.setImageURI(outputFileUri); } } } private void getThumbnailPicture() { Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(intent, TAKE_PICTURE_REQUEST); } private void saveFullImage() { Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); File file = new File(Environment.getExternalStorageDirectory(), "test.jpg"); outputFileUri = Uri.fromFile(file); intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri); startActivityForResult(intent, TAKE_PICTURE_REQUEST); }}

В реальных приложениях для создания имён файлов используют текущую дату, чтобы обеспечить уникальность и не затереть существующую фотографию.

Запуск камеры в нужном режиме

Мы можем выбрать намерение, позволяющее включить камеру в нужном режиме: фотосъёмка или видео.

private static final int REQUEST_TAKE_PHOTO = 1;private static final int REQUEST_TAKE_VIDEO = 2;// фотосъёмкаpublic void capturePhoto() { Intent intent = new Intent(MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA); if (intent.resolveActivity(getPackageManager()) != null) { startActivityForResult(intent, REQUEST_TAKE_PHOTO); }}// видеосъёмкаpublic void captureVideo() { Intent intent = new Intent(MediaStore.INTENT_ACTION_VIDEO_CAMERA); if (intent.resolveActivity(getPackageManager()) != null) { startActivityForResult(intent, REQUEST_TAKE_VIDEO); }}

Снимаем и кадрируем

Рассмотрим ещё один пример с режимом кадрирования. Основная часть кода остаётся прежней. Рекомендую проверять работу с камерой на реальных устройствах, так как многие производители заменяют стандартные методы съёмки своими прошивками и драйверами. В частности, намерение с кадрированием является проблемной, и в интернете многие жалуются на отсутствие поддержки этого способа. Пример для старых устройств до Android 6.0.

Создадим простенький макет из кнопки для запуска камеры и ImageView для вывода кадрированного изображения.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <Button android:id="@+id/buttonCapture" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:onClick="onClick" android:text="Запустить камеру" /> <ImageView android:id="@+id/picture" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:background="@drawable/background" /></LinearLayout>

Для большей красоты сделаем задний фон у ImageView с закруглёнными углами и обводкой. Для этого в атрибуте android:background мы прописали специальный стиль. Создайте папку res/drawable, а в ней файл background.xml следующего содержания:

<shape xmlns:android="http://schemas.android.com/apk/res/android" android:dither="true" > <gradient android:angle="90" android:centerColor="#00000000" android:endColor="#99ffffff" android:startColor="#99ffffff" /> <padding android:bottom="10dp" android:left="10dp" android:right="10dp" android:top="10dp" /> <corners android:radius="5dp" /> <stroke android:width="2dp" android:color="#ccffffff" /></shape>

Этот шаг не является обязательным и его можно пропустить.

При нажатии кнопки запускаем приложение Камера и ожидаем результата.

public void onClick(View view) {try {// Намерение для запуска камерыIntent captureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);startActivityForResult(captureIntent, CAMERA_REQUEST);} catch (ActivityNotFoundException e) {// Выводим сообщение об ошибкеString errorMessage = "Ваше устройство не поддерживает съемку";Toast toast = Toast.makeText(this, errorMessage, Toast.LENGTH_SHORT);toast.show();}}

После того, как пользователь сделал нужный кадр, программа Камера возвращает результат обратно в наше приложение. Результат обрабатывается в методе onActivityResult():

protected void onActivityResult(int requestCode, int resultCode, Intent data) {if (resultCode == RESULT_OK) {// Вернулись от приложения Камераif (requestCode == CAMERA_REQUEST) {// Получим Uri снимкаpicUri = data.getData();// кадрируем егоperformCrop();}// Вернулись из операции кадрированияelse if(requestCode == PIC_CROP){Bundle extras = data.getExtras();// Получим кадрированное изображениеBitmap thePic = extras.getParcelable("data");// передаём его в ImageViewImageView picView = (ImageView)findViewById(R.id.picture);picView.setImageBitmap(thePic);}}}

Получив полноразмерное изображение, мы пытаемся откадрировать его. Для этого создадим метод performCrop(), который запускает специальное намерение, предназначенное для этих целей. В успешном случае результат снова возвращается в наше приложение, но уже с другим кодом PIC_CROP. Теперь мы имеем нужное изображение, которое можно вывести на экран.

При кадрировании мы указываем желаемые размеры (код метода ниже). Если указать слишком больше размеры (больше 400), то результат не возвращается. Попробуйте добавить ещё два параметра:

//куда сохраняемintent.putExtra("output", picUri); intent.putExtra("outputFormat", "JPEG");

Результат работы приложения, когда запускается намерение кадрирования и итоговый результат. Желательно тренироваться на кошках.

Исходник полностью.

package ru.alexanderklimov.photo;import android.app.Activity;import android.content.ActivityNotFoundException;import android.content.Intent;import android.graphics.Bitmap;import android.net.Uri;import android.os.Bundle;import android.provider.MediaStore;import android.view.View;import android.widget.ImageView;import android.widget.Toast;public class MainActivity extends Activity {final int CAMERA_REQUEST = 1;final int PIC_CROP = 2;private Uri picUri;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);setTitle("Съёмка и Кадрирование");}public void onClick(View v) {try {// Намерение для запуска камерыIntent captureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);startActivityForResult(captureIntent, CAMERA_REQUEST);} catch (ActivityNotFoundException e) {// Выводим сообщение об ошибкеString errorMessage = "Ваше устройство не поддерживает съемку";Toast toast = Toast.makeText(this, errorMessage, Toast.LENGTH_SHORT);toast.show();}}protected void onActivityResult(int requestCode, int resultCode, Intent data) {if (resultCode == RESULT_OK) {// Вернулись от приложения Камераif (requestCode == CAMERA_REQUEST) {// Получим Uri снимкаpicUri = data.getData();// кадрируем егоperformCrop();}// Вернулись из операции кадрированияelse if(requestCode == PIC_CROP){Bundle extras = data.getExtras();// Получим кадрированное изображениеBitmap thePic = extras.getParcelable("data");// передаём его в ImageViewImageView picView = (ImageView)findViewById(R.id.picture);picView.setImageBitmap(thePic);}}}private void performCrop(){try {// Намерение для кадрирования. Не все устройства поддерживают егоIntent cropIntent = new Intent("com.android.camera.action.CROP");cropIntent.setDataAndType(picUri, "image/*");cropIntent.putExtra("crop", "true");cropIntent.putExtra("aspectX", 1);cropIntent.putExtra("aspectY", 1);cropIntent.putExtra("outputX", 256);cropIntent.putExtra("outputY", 256);cropIntent.putExtra("return-data", true);startActivityForResult(cropIntent, PIC_CROP);}catch(ActivityNotFoundException anfe){ String errorMessage = "Извините, но ваше устройство не поддерживает кадрирование"; Toast toast = Toast.makeText(this, errorMessage, Toast.LENGTH_SHORT); toast.show();}}}

Дополнительное чтение

Снимаем на камеру в Android 7.0+

Обсуждение урока на форуме

Реклама

Приложение «Google Камера» — это та «волшебная палочка», которая позволяет смартфонам серии Google Pixel находиться в топе устройств для мобильной фотографии даже с одним-двумя сенсорами. Разработчикам Google удалось создать алгоритмы, которые почти устраняют недостатки мобильных датчиков.

И хотя изначально «Камера» недоступна для смартфонов других производителей, стараниями сообщества независимых разработчиков владелец почти любого Android-смартфона может приблизиться к качеству фотографии на Google Pixel.

Последняя на момент написания материала мажорная версия «Google Камеры» — 7.3. Она привнесла в приложение режим «Не беспокоить», который не даёт смартфону вибрировать при записи видео, незначительные перестановки в меню и намёк на скорое появление функции съёмки в кинематографическом формате 24 кадров в секунду. Наверняка есть изменения и «под капотом».

Что нужно знать?

«Google Камера» разрабатывается специально для линейки смартфонов Google Pixel, которые всегда работали на чипсетах Qualcomm Snapdragon. Это значит, что с устройствами на иных платформах могут возникнуть проблемы: приложение может отказаться устанавливаться или корректно работать.

Ещё один момент — поддержка API Camera2. Смартфон, на который инсталлируется «Камера», должен поддерживать актуальный набор интерфейсов. Обычно с современными гаджетами проблем не возникает, но на всякий случай можно проверить совместимость с нужными API при помощи приложения Camera2 probe. Если в пункте Hardware Support Level отмечен параметр LIMITED, FULL или LEVEL_3 — всё в порядке, API Camera2 поддерживается.

А если нет, есть способ ручной активации интерфейса, но для этого понадобятся права суперпользователя и ряд действий. Самые пытливые могут найти соответствующие инструкции в сети.

Где искать моды?

Конечно, можно перелопачивать форумы зарубежного XDA Developers и отечественного 4PDA. Но есть вариант проще — общепризнанный сообществом пользователей «Google Камеры» сайт с последними сборками модов, созданный человеком по имени Челзо Азеведу. На нём можно найти все или почти все существующие модификации приложения.

Последние моды от нескольких десятков разработчиков, некоторые из которых специализируются на оптимизации «Камеры» под конкретные модели смартфонов, доступны на этой странице.

Обновлено (1.02.2021): Опубликован новый мод Google Camera by B-S-G в новой версии MGC_8.1.101_A9_PV0e, которая предназначена для большего количества устройств.

Как выбрать подходящий?

Самый простой способ — перейти в раздел Suggested Versions. На ней собраны самые стабильные сборки от проверенных разработчиков, которые с большой долей вероятности заработают на почти любом Android-смартфоне. Но иногда потребуется перебрать несколько версий, чтобы найти максимально подходящий вариант.

В общем списке Suggested Versions также выделены красным цветом шрифта.

Найти специально оптимизированную под конкретную модель модификацию можно на этой странице, воспользовавшись поиском (Ctrl+F в десктопном браузере). Здесь почти у каждого разработчика указаны устройства, на которых он специализируется. Тут же можно связаться с автором или отправить ему благодарность в виде доната.

Как установить?

Так же, как и обычное приложение. Сайт предлагает прямую загрузку APK-файла, при попытке его инсталляции Android 8.0+ спросит разрешение на установку программ из неизвестных источников.

Если речь про самую последнюю версию «Google Камеры» 7.3, вышедшую в конце января, то пока её стабильных модов не так много, Suggested Versions и вовсе нет.

Стоит обратить внимание на сборку GCam_7.3.018_Urnyx05-v1.3 от разработчика Urnyx05. Он активно исправляет баги сразу для нескольких моделей смартфонов, более того, если оригинальная «Камера» 7.3 работает только на Android 10, Urnyx05 расширил поддержку до Android 9+.

Также популярны работы российского разработчика Parrot043. Функционирование его мода MGC_7.3.018_Parrot043-v1.apk уже достаточно стабильно и подтверждено на достаточно длинном перечне устройств, включая последние флагманы OnePlus, Redmi Note 8, Pocophone F1, Mi 9T и 9T Pro.

Какие особенности?

Обычно моддеры не ограничиваются оптимизацией «Камеры» под сторонние устройства и расширяют базовую функциональность приложения. Например, Urnyx05 хвастается возможностью активации дополнительных сенсоров смартфона (если таковые имеются) и принудительного включения режима астрофотографии, а расширенные настройки продукта Parrot043 не умещаются и в пять экранов.

Параметры MGC_7.3.018_Parrot043-v1.apk

Но нужно помнить, что не все эти фишки работают стабильно на полном перечне смартфонов.

Ещё некоторые моды предлагают установку конфигурационных файлов для копирования алгоритмов обработки фотографий с последних Google Pixel или, напротив, оптимизации под установленные в конкретном смартфоне датчики изображения. Информацию о поддержке конфиг-файлов и ссылки на их загрузку можно также найти на сайте Челзо Азеведу.

Каковы результаты?

Просто несколько фото для сравнения. В тесте использовался OnePlus 7 на стоковой OxygenOS Open Beta 10 (Android 10) с предустановленными Oxygen Camera и с GCam_7.3.018_Urnyx05-v1.3.

  • Вступление
  • Open Camera
    • Знакомство
    • Первое впечатление
    • Камера
    • Нагрузка на систему
    • Выводы
  • Camera MX
    • Знакомство
    • Первое впечатление
    • Камера
    • Нагрузка на систему
    • Выводы
  • Camera360
    • Знакомство
    • Первое впечатление
    • Камера
    • Нагрузка на систему
    • Выводы
  • Заключение

Вступление

Штатное приложение камеры мало когда устраивает, особенно если у нас android-гаджет. Оно предлагает набор стандартных функций и настроек без изысков, наделено не самым удобным управлением (для тех, кто не привык) и априори потребляет немало ресурсов.

Конечно, если вы счастливый обладатель хорошей оптики, зачем вообще заморачиваться с дополнительным ПО? Другое дело, если требуется выжать из камеры максимум, получить профессиональные фильтры и инструменты, а также обеспечить минимальный расход аккумулятора – в этом случае без сторонних решений не обойтись.

Но есть ли таковые в замусоренном Google Play? Или лучше не тратить время на псевдоулучшение снимков? Вот в этом мы и разберемся, рассмотрев несколько популярных решений.

Первой пойдет программа Open Camera, призванная мобилизовать мобильный сенсор по полной, используя для этой цели самый передовой инструментарий. Второй подопытный – Camera MX, предназначенный для тех, кто хочет минимум заморочек с максимальной отдачей. Ну а закончит обзор Camera360, которая помимо оптимизатора снимков предлагает еще и своеобразную социальную сеть.

В качестве тестового оборудования использовались:

  • Планшет DEXP Ursus 8EV2 3G (Android 4.4.2, процессор MT8382, 4 x Cortex-A7 1.3 ГГц, видеоядро Mali-400 MP2, 1 Гбайт ОЗУ, аккумулятор 4 000 мАч, 3G-модуль, Wi-Fi 802.11b/g/n);
  • Смартфон Homtom HT3 Pro (Android 5.1 Lollipop, процессор MT6735P, 4 x Cortex-A53 1.0 ГГц, 64-бит, видеоядро Mali-T720, 2 Гбайт ОЗУ, аккумулятор 3 000 мАч, 4G-модуль, Wi-Fi 802.11b/g/n).

Знакомство

Open Camera – это приложение родом из Кембриджа с открытым исходным кодом, инструментарий которого действительно впечатляет. Правда, в основном это улучшение существующих функций стандартного приложения, хотя есть и собственные фишки.

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

Оценка в Google Play 4.2
Разработчик Mark Harman
Количество загрузок в Google Play 5 000 000-10 000 000
Совместимость приложения с другими версиями ОС Android 4.0.3 или более поздняя
Размер приложения после установки 5.6 Мбайт
Версия приложения 1.36.2
Покупки в приложении

Основные функции:

  • Автоматическая стабилизация;
  • Несколько режимов фокусировки, цветовые эффекты и фильтры, баланс белого, настройка ISO, функция обнаружения лиц и прочее;
  • Поддержка записи HD-видео;
  • Голосовое управление таймером, автоматический режим повторной съемки;
  • Настраиваемые клавиши громкости для управления камерой;
  • Программные клавиши, оптимизированные для левшей и правшей;
  • Возможность отключить звук затвора;
  • Несколько профессиональных сеток;
  • Дополнительные геометки;
  • Поддержка HDR;
  • Приложение с открытым исходным кодом, распространяется бесплатно и без рекламы.

Разрешения:

Местоположение:

  • Точное местоположение (на основе сети и сигналов GPS).

Фото/мультимедиа/файлы:

  • Просмотр данных на USB-накопителе;
  • Изменение/удаление данных на USB-накопителе.

Память:

  • Просмотр данных на USB-накопителе;
  • Изменение/удаление данных на USB-накопителе.

Камера:

  • Фото- и видеосъемка.

Микрофон:

  • Запись аудио.

Первое впечатление

При запуске Open Camera сразу открывает объектив, и становится ясно, что компоновка элементов здесь отлична от системного решения. В самом низу большая синяя клавиша «Снять», слева зум, регулируемый ползунком, справа – колонка инструментов, где в самом низу расположились настройки, которыми мы и займемся, чтобы понять, на что программа способна.

Можно включить функцию распознавания лиц (это у Google-камеры есть), выбрать время срабатывания таймера и настроить пакетную съемку. В последних двух случаях выбор времени отсчета и количества снимков гораздо шире, чем у системного аналога.

Надо признать, такой дифференциации многим действительно не хватало. При этом временной интервал в пакетном режиме можно также выбрать, а не снимать кучу фото за пару секунд.

Отдельно идут параметры фото и параметры видео. В первых выбираем качество изображения в процентном отношении, то есть тонко его настраиваем без банальных «Хорошо», «Средне» и «Отлично». Что до фронтальной камеры, то в ней изображения можно отражать зеркально – это понравится любителям селфи.

Помимо этого, можно наставить штампов на снимок, выбрав формат даты, времени и даже геометки (градусы/минуты/секунды), а также придумать свою автоматическую подпись на фото, назначив определенный шрифт, его стиль и цвет. Жаль, что эта подпись будет превалировать на всех снимках, пока не измените.

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

Настройки видео включают выбор разрешения оного – в моем случае от QCIF до HD. Напомню, что в обычной камере это просто «Хорошее», «Среднее» и так далее. Отметим условно регулируемый битрейт и FPS. Все настраивается точно и при желании можно поэкспериментировать, если оптика это позволяет.

Из прочих отличий – возможность зафиксировать длину ролика, включить затирание старого видео после достижения определенного лимита, настроить максимальный размер файла, отключить запись звука и выбрать для него число каналов (моно или стерео, если устройство этот формат поддерживает).

Однако и это еще не все. Есть возможность заблокировать экран при записи видео, включить субтитры (дата/время, геометка), а также принудительно активировать 4K, останавливать запись при низком заряде батареи и включить подсветку посредством вспышки. Все это вряд ли найдешь в системном решении.

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

Из интересного стоит отметить выбор конкретной папки для сохранения мультимедиа, префиксов для фото и видео и калибровку уровня угла. Здесь все зависит от работоспособности и точности датчика ориентации.

Отдельно настраивается GPS. Можно хранить направление компаса и требовать данные о местоположении, причем съемка не начнется, если таковые не будут доступны.

Кстати, интерфейс также можно гибко параметризировать, отключив или добавив кнопки, как угодно.

Теперь протестируем саму камеру.

Камера

Качество снимков с обычной камеры и Open Camera практически неотличимо. Сразу сознаюсь, что я не фотограф, поэтому большой разницы не заметил. При этом если в Google-камере автофокусировка происходит до съемки, то в этом приложении она активируется после нажатия «Снять». И такой автофокус ему доверить можно, поскольку картинка из любого положения становится более или менее резкой. А в случае с конкурентом порой приходится помучиться.

Это же касается и видео, где все вышеописанные функции работают на ура, однако останавливаться на этом отдельно не буду (в будущем выйдет статья с конкретными приложениями). Что касается скорости съемки, то здесь особой разницы нет. Все упомянутые настройки отработали без замечаний, включая таймер и зеркальное селфи.

При желании снимок можно отредактировать (системное решение), добавив фильтры, рамку, откадрировать его и настроить цвет. Принцип редактирования и набор инструментов стандартный. Впрочем, о фоторедакторах мы уже говорили, поэтому отдельно останавливаться нет смысла.

Теперь посмотрим на потребление.

Нагрузка на систему

Open Camera потребляет в меру – 57 Мбайт ОЗУ при 0.01% на процессоре. Аккумулятор за день вялой съемки проседает на 20%, скорость энергопотребления равна 61 мВт. Средний часовой расход емкости батареи находится на уровне 2.9%. В этом плане все, как и у стандарта.

Приложение совместимо с Android 4.0.3 или выше, весит в системе всего 5.6 Мбайт, не содержит рекламы и распространяется бесплатно. Разрешений немного, и они все по делу.

Выводы

Open Camera – один из лучших аналогов штатной камеры, значительно расширяющий ее возможности и облегчающий процесс съемки. Среди замечаний – немного запутанные настройки, но это скорее придирка, нежели недостаток.

В числе плюсов отметим малую нагрузку на систему, возможность тонко настроить разрешение и качество, а также расширенные геометки. Как следствие, данное приложение вполне можно рекомендовать к установке.

Оценка: 5.0 по пятибалльной шкале.

Интерфейс Отлично (однооконный)
Возможность самостоятельной настройки Да (все необходимое)
Общая эффективность Отлично
Удобство управления Отлично
Максимальная нагрузка на систему (CPU/RAM) 0.01% / 57 Мбайт
Размер после установки 5.6 Мбайт
Максимальный расход аккумулятора 20%
Скорость энергопотребления 61 мВт
Использование GPS-модуля Да
Трафик Только на обновление данных
Необходимость в root Нет
Реклама Нет

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

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

Оценка в Google Play 4.3
Разработчик Appic Labs GmbH
Количество загрузок в Google Play 10 000 000-50 000 000
Совместимость приложения с другими версиями ОС Android Зависит от устройства (без проблем работает на Android 5.1 и 4.4.2)
Размер приложения после установки 45 Мбайт
Версия приложения Зависит от устройства
Покупки в приложении От 39.00 до 59.99 рублей за единицу

Основные функции:

  • Видеотримминг без потери качества;
  • Возможность выбрать максимально доступное разрешение без ограничений;
  • Несколько сеток для камеры;
  • Встроенный графический редактор;
  • Простое управление;
  • Поддержка «живых» фото.

Разрешения:

Покупки через приложение, идентификационные данные:

  • Поиск аккаунтов на устройстве.

Контакты:

  • Поиск аккаунтов на устройстве.

Местоположение:

  • Точное местоположение (на основе сети и сигналов GPS).

Фото/мультимедиа/файлы:

  • Просмотр данных на USB-накопителе;
  • Изменение/удаление данных на USB-накопителе.

Память:

  • Просмотр данных на USB-накопителе;
  • Изменение/удаление данных на USB-накопителе.

Камера:

  • Фото- и видеосъемка.

Микрофон:

  • Запись аудио.

Другое:

  • Получение данных из Интернета;
  • Просмотр сетевых подключений;
  • Неограниченный доступ к Интернету;
  • Запуск при включении устройства;
  • Установка обоев;
  • Управление функцией вибросигнала;
  • Предотвращение переключения устройства в спящий режим;
  • Создание ярлыков.

Интерфейс Camera MX по компоновке схож со стандартным решением. Управление камерой, фото- и видеосъемка, а также просмотр последних снимков находятся в самом низу экрана.

В самом вверху – выбор эффекта наложения, «живое» фото, настройка вспышки, смена камеры и дополнительное меню, где можно быстро выбрать разрешение снимка, режим сцены, например, «Ночь», включить ускорение видео и EV-правку. Не обошлось и без сетки. В правом верхнем углу размещены настройки.

Здесь из интересного – параметризация соотношения сторон и разрешения, в том числе и видео, выбор основной или фронтальной камеры, отключение звука затвора и автофокусировка. Это можно делать простым щелчком или тапом по экрану. На кнопки громкости также задается действие, например, зум. Угол наклона, как и у конкурента, калибруется.

Для «живых» фото выбираем скорость воспроизведения – в реальном времени либо ускорение в два или три раза, и настраиваем тон.

Для эффектов доступно ускорение работы, для чего будет отдельно задействован графический процессор, что повлечет расход аккумулятора. При смене эффекта возможен плавный переход. Его длительность и качество выбирается.

Место сохранения указывается самостоятельно или оставляется по умолчанию. Кстати, качество Jpeg параметризируется шкалой от нуля до ста, а исходное изображение можно сохранить вместе с отредактированным снимком. Таймер стандартный, штампов на фото нет.

На первый взгляд перед нами урезанная Open Camera, но со своими пусть небольшими, но плюшками.

Слева снимок с помощью обычной камеры, справа – Camera MX. Как можно видеть, особого прироста качества незаметно, автофокус работает по аналогии с системным решением, скорость фотографирования такая же.

С точки зрения обычного пользователя очень удобно настраивать эффекты, разрешение, включать сетку и регулировать режим сцен, однако, несмотря на схожий интерфейс, переучиваться все равно придется.

Теперь о фильтрах, которые активируются до съемки. Чего здесь только нет, но самые интересные из них платные. Зато реализована собственная галерея и небольшой интернет-магазин с соответствующим сообществом. Надо отметить, что профессиональных украшательств все равно мало. В этом плане лучше установить ту же Prisma и не размениваться на школьные причуды. Впрочем, хозяин – барин.

Ручного фоторедактора как такового нет. Про «живые» фото и как они работают, думаю, рассказывать не надо – тот же GIF, только в другой руке. Одно отмечу – работает это дело лучше, чем встроенная у меня функция, благо скорость воспроизведения можно отрегулировать.

Далее мы посмотрим на аппетиты программы.

Как и предполагалось, предварительные «супер-мега-эффекты» берут свое – 315 Мбайт оперативной памяти при 0.5% на процессоре. Однако аккумулятор за день экспериментов проседает всего на 12.5%, хотя скорость энергопотребления равна 60 мВт. Часовой расход в среднем – 1.5%. Очевидно, гигабайта ОЗУ здесь будет маловато, да и батарею надо не менее 3 000 мАч.

Приложение выборочно к версии Android, весит в системе 45 Мбайт, не содержит рекламы, но предполагает встроенные покупки.

Что касается разрешений, то непонятно зачем необходим GPS-модуль, если как таковой он не используется.

Как и предполагалось в самом начале, Camera MX – это урезанная версия Open Camera с большим количеством предэффектов, но без графического редактора. Ее оценят любители разных фишек, например, калейдоскопа, и те, кому желательна усовершенствованная системная камера. Всем прочим, предпочитающим классические снимки, это прожорливое приложение мало понравится.

Оценка: 4.5 по пятибалльной шкале.

Интерфейс Отлично (однооконный интерфейс)
Возможность самостоятельной настройки Да (необходимый минимум)
Общая эффективность Хорошо
Удобство управления Хорошо
Максимальная нагрузка на систему (CPU/RAM) 0.5% / 315 Мбайт
Размер после установки 45 Мбайт
Максимальный расход аккумулятора 12.5%
Скорость энергопотребления 60 мВт
Использование GPS-модуля Нет
Трафик На скачивание эффектов
Необходимость в root Нет
Реклама Нет

Camera360

С одной стороны, по мнению магазина Google Play, это одно из лучших приложений для снимков в 2016 году. С другой, рейтинг основывается на данных о количестве псевдоскачиваний, и слепо верить ему не стоит.

Тем не менее, перед нами интересная «Камера», которая представляет собой не просто ПО, а целую социальную сеть. Здесь немало селфи-функций, «толстый» фоторедактор и, возможно, чуть улучшенная системная камера. В общем, изучим этого участника, отведя ему роль приложения для снимков с социальной составляющей.

Оценка в Google Play 4.3
Разработчик PinGuo Inc.
Количество загрузок в Google Play 100 000 000-500 000 000
Совместимость приложения с другими версиями ОС Android Зависит от устройства (без проблем работает на Android 5.1 и 4.4.2)
Размер приложения после установки 119 Мбайт
Версия приложения 8.2.1
Покупки в приложении От 55.00 до 119.00 рублей за единицу

Основные функции:

  • Глобальное сообщество профессиональных фотографов;
  • Селфи-камера и бьюти-камера;
  • Профессиональный фоторедактор;
  • Настраиваемые фильтры и мультипликационные эффекты;
  • Стикеры;
  • Постер-камера.

Разрешения:

Покупки через приложение, история использования устройства и приложений:

  • Получение данных о запущенных приложениях.

Местоположение:

  • Примерное местоположение (на основе сети);
  • Точное местоположение (на основе сети и сигналов GPS).

Телефон:

  • Получение данных о статусе телефона.

Фото/мультимедиа/файлы:

  • Просмотр данных на USB-накопителе;
  • Изменение/удаление данных на USB-накопителе.

Память:

  • Просмотр данных на USB-накопителе;
  • Изменение/удаление данных на USB-накопителе.

Камера:

  • Фото- и видеосъемка.

Микрофон:

  • Запись аудио.

Данные о Wi-Fi-подключении:

  • Просмотр подключений Wi-Fi.

Идентификатор устройства и данные о вызовах;

  • Получение данных о статусе телефона.

Другое:

  • Получение данных из Интернета;
  • Просмотр сетевых подключений;
  • Изменение сетевых настроек;
  • Получение данных по многоадресной рассылке через Wi-Fi;
  • Подключение/отключение сети Wi-Fi;
  • Неограниченный доступ к Интернету;
  • Изменение настроек аудио;
  • Запуск при включении устройства;
  • Показ элементов интерфейса поверх других окон;
  • Управление функцией вибросигнала;
  • Предотвращение переключения устройства в спящий режим;
  • Изменение настроек системы;
  • Создание ярлыков.

Camera360 встречает нас рекламным роликом, наглядно демонстрирующим возможности программы. Сам интерфейс камеры тривиален и больше сводится к применению различных фишек – эффектов и фильтров.

В самом верху «три точки», где можно настроить вспышку, соотношение сторон, таймер, включить сетку, быстро наложить размытие, виньетку и съемку одним касанием. Здесь находятся и параметры.

Если камера простаивает, включается экономный режим, то есть она уходит в фон (или иначе, если хотите, в спящий режим).

В настройках можно выбрать разрешение фото, но, как и в системном решении, все сводится к «Низко», «Средне» и «Высоко». Есть автоповорот изображения фронтальной камеры, просмотр эффектов в реальном времени, отключение звука затвора и назначение действий на физические клавиши громкости, в том числе поддержка беспроводного пульта управления. Водяной знак с датой также присутствует.

Из интересного – возможность сохранить фото с фронтальной и основной камеры в отдельные папки. Социальная составляющая требует установки отдельного приложения и выражена в облачном фотоальбоме.

Что ж, сравним качество фото с Google-приложением. Надо признать, что скорость фотографирования здесь выше, а вот качество изображений практически аналогичное.

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

Если говорить о предварительных эффектах, в том числе селфи-режиме, то тут все плохо – какие-то детские кошачьи ушки-ножки и тому подобное. При этом большинство из них стоят денег и загружаются отдельно. Будут рады и любители самолюбования – для них доступно любое изменение внешности.

Впрочем, если заглушить во мне скептика, выглядит это действительно интересно. Лично к себе применять не буду – мне уже ничего не поможет.

Camera360 потребляет в пределах 170 Мбайт, нагружая процессор на 0.3%. При этом аккумулятор проседает на 5.2%, но я не любитель селфи и особо не усердствовал, а вот редактор фото действительно интересен, поэтому часовой расход равнялся 2% (0.7% в фоне). Энергопотребление при этом всего 45 мВт, что меньше, чем у конкурента.

Программа выборочна к версии Android, весит в системе 119 Мбайт, не содержит рекламы, распространяется бесплатно, но предполагает донат.

Разрешений великое множество и не все они внушают доверие. Чтобы это понять, обратитесь к списку выше. Надо отметить, что некоторые разработчики с востока любят лезть туда, куда в теории и не нужно.

Camera360 – это не лучший вариант улучшить качество камеры, однако компенсировать сей недостаток можно с помощью фоторедактора, пусть даже для его освоения потребуется некоторый энтузиазм. Это приложение определенно понравится тем, кто любит так называемые баннеры с ушками и не страдает от избытка нарциссизма, да и потребляет оно в пределах нормы.

Оценка: 4.8 по пятибалльной шкале.

Интерфейс Хорошо (однооконный)
Возможность самостоятельной настройки Да (непростительный минимум)
Общая эффективность Хорошо
Удобство управления Хорошо
Максимальная нагрузка на систему (CPU/RAM) 0.3% / 170 Мбайт
Размер после установки 119 Мбайт
Максимальный расход аккумулятора 38.2%
Скорость энергопотребления 45 мВт
Использование GPS-модуля Нет
Трафик На скачивание эффектов
Необходимость в root Нет
Реклама Нет

Заключение

Итак, тем пользователям, которые хотят получить максимум от своей, пусть даже не лучшей камеры, стоит обратить внимание на Open Camera.

Это приложение позволяет настроить функциональность сенсора, однако без экспериментов не обойдется. Лично я не раз брал в руки бубен, чтобы оптимизировать датчик изображения тестового устройства. Можно однозначно сказать, что перед нами лучшее решение, заменяющее системный аналог.

Сводное сравнение Open Camera, Camera MX и Camera360

Функциональность Open Camera Camera MX Camera360
Оценка автора 5.0 4.5 4.8
Интерфейс Отлично (однооконный) Отлично (однооконный интерфейс) Хорошо (однооконный)
Возможность самостоятельной настройки Да (все необходимое) Да (необходимый минимум) Да (непростительный минимум)
Общая эффективность Отлично Хорошо Хорошо
Удобство управления Отлично Хорошо Хорошо
Максимальная нагрузка на систему (CPU/RAM) 0.01% / 57 Мбайт 0.5% / 315 Мбайт 0.3% / 170 Мбайт
Размер после установки 5.6 Мбайт 45 Мбайт 119 Мбайт
Максимальный расход аккумулятора 20% 12.5% 38.2%
Скорость энергопотребления 61 мВт 60 мВт 45 мВт
Использование GPS-модуля Да Нет Нет
Трафик Только на обновление данных На скачивание эффектов На скачивание эффектов
Необходимость в root Нет Нет Нет
Реклама Нет Нет Нет

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

Что касается Camera360, то в его случае нас ждет сплошное «веселье», хотя и серьезному есть место. Но если закрыть глаза на все украшательства, то мы получаем неплохой фоторедактор и относительно небольшую нагрузку на систему. Впрочем, в следующей статье мы окончательно расставим все точки над i, изучив еще несколько приложений.

Владимир Осадчий

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *