В помощь мобильному разработчику

Кроссплатформенные фото с медиаплагином

Александр Алексеев

 tumblr_inline_ofvu08bdge1qzumo9_250Благодаря долгим месяцам напряженной работы, содействию разработке заинтересованных сторон и аналитическому рассмотрению кода; после выпуска новых версия операционных систем и многих интересных возможностей, совершенно новый медиаплагин для Xamarin и Windows наконец-то готов предстать на суд общественности. Не имеет значения, на чём Вы разрабатываете приложения: Xamarin или Xamarin.Forms, Вы с легкостью можете позволить пользователям снимать или выбирать фото и видео, используя общий код!

Вот самый простой пример съёмки фотографии и её отображения в Xamarin.Forms Image.

 

Улучшения

При создании этого релиза я сосредоточился на повышении производительности, оптимизации памяти и добавление новых функций, которые запрашивали разработчики. И первостепенной задачей была подгонка размеров изображения при съёмке и сортировке фотографий. Сейчас всё, что для этого требуется сделать — это установить PhotoSize в Media Options:

PhotoSize = PhotoSize.Medium

Благодаря этому оно будет уменьшено вполовину, или же можно просто указать кастомное изменение соотношения размеров:

PhotoSize = PhotoSize.Custom, CustomPhotoSize = 90

И более того, я также добавил новый способ сжатия качества изображений, которым можно воспользоваться, просто установив другой параметр при съёмке или выборе фотографий:

CompressionQuality = 92

Это бывает крайне полезным при отображении фотографий для пользователей, а также тогда, когда локальное сохранение фото в разрешении 2400×4600 видится нецелесообразным. Тем не менее может требоваться сохранить оригинальную фотографию в пользовательской галерее, и здесь на выручку приходит Media Plugin! Просто установите:

SaveToAlbum = true

Соответственно, оригинальный снимок будет сохранен в каталог с фотографиями, отснятыми камерой на каждом устройстве!

Здесь появилось и множество других функций, таких как специфицирование удаления лишних пикселов на границах изображения на iOS и UWP, поддержка новых разрешений iOS 10 и Android N (новый фантастичный File Providers) и даже графической накладки на iOS:

tumblr_inline_ofvunm2rwg1qzumo9_500

 

Оптимизация

Я потратил множество часов на оптимизацию кода специально под Android. Это означает, что фотографии будут автоматически поворачиваться на основе информации, предоставляемой Exif, и растровые изображения загружаться в память только тогда, когда это необходимо для продолжения съёмки, а также различные ошибки, о которых сообщали на станице GitHub, были исправлены. В этом релизе также появилось приятное дополнение нового Permissions Plugin, так что теперь всё желающие могут взяться за освоение новых, определённо, удачных функций.

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

 

Что будет дальше?

Я бы хотел заняться сознанием новой 3.0-версии, включающей определённые решения по оптимизации, такие как возможность изменения размеров фотографий до максимальной ширины и высоты, но все-таки хотелось узнать Ваше мнение о том, что вы желаете увидеть в следующем релизе, или Вы уже всем довольны? 🙂 Поделитесь с нами Вашим мнением на странице GitHub.

АвторJames Montemagno
ИсточникСтатья в блоге автора

Александр Алексеев
Александр Алексеев

Xamarin - разработчик. Работаю с .NET платформой с 2012 года, программирую в основном с использованием C#. За это время успел поработать с ASP.NET, Entity Framework, MSSQL, Git

Xamarin platform
Firebase лого

Написать ответ