{"id":20699106,"url":"https://github.com/felipenicoletto/mediafilesmanager","last_synced_at":"2025-04-22T22:01:46.463Z","repository":{"id":144187827,"uuid":"109906651","full_name":"FelipeNicoletto/MediaFilesManager","owner":"FelipeNicoletto","description":"Simple cross platform plugin to access images and videos on Android and iOS","archived":false,"fork":false,"pushed_at":"2019-03-26T00:19:00.000Z","size":1712,"stargazers_count":7,"open_issues_count":1,"forks_count":3,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-03-29T19:11:28.648Z","etag":null,"topics":["access","android","cross-platform","dot-net","files","images","ios","manager","media","photos","plugin","thumbnail","videos","xamarin"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/FelipeNicoletto.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-11-08T00:19:25.000Z","updated_at":"2022-02-24T18:16:11.000Z","dependencies_parsed_at":null,"dependency_job_id":"99a75afb-d2a6-4708-af2d-23ac40686c3d","html_url":"https://github.com/FelipeNicoletto/MediaFilesManager","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FelipeNicoletto%2FMediaFilesManager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FelipeNicoletto%2FMediaFilesManager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FelipeNicoletto%2FMediaFilesManager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FelipeNicoletto%2FMediaFilesManager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FelipeNicoletto","download_url":"https://codeload.github.com/FelipeNicoletto/MediaFilesManager/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250331803,"owners_count":21413100,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["access","android","cross-platform","dot-net","files","images","ios","manager","media","photos","plugin","thumbnail","videos","xamarin"],"created_at":"2024-11-17T00:28:19.135Z","updated_at":"2025-04-22T22:01:46.421Z","avatar_url":"https://github.com/FelipeNicoletto.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MediaFilesManager\n\n\u003cimg src=\"https://img.shields.io/nuget/dt/MediaFilesManager.svg\"/\u003e\n\nSimple cross platform plugin to access images and videos on Android and iOS.\n\n**Platform Support**\n\n|Platform|Version|\n| ------------------- | :-----------: |\n|Xamarin.iOS|iOS 8+|\n|Xamarin.Android|API 14+|\n\n\n## Installing\nInstall the [NuGet package MediaFilesManager](https://www.nuget.org/packages/MediaFilesManager):\n```\nnuget install MediaFilesManager\n```\n\n### API Usage\n\nCall **CrossMediaFileManager.Current.GetAlbumsAsync()**\n```csharp\nTask\u003cIMediaAlbum[]\u003e GetAlbumsAsync();\n```\n\nThe result is an array of all device's imagens and videos albums (IMediaAlbum[])\n\n```csharp\npublic interface IMediaAlbum\n{\n    string Title { get; }\n\n    IMediaFile[] GetAllMediaFiles(MediaAlbumContentType contentTypes = MediaAlbumContentType.All);\n    \n    MediaAlbumContentType GetContentTypes();\n    \n    IMediaFile GetMediaFileAtIndex(int index, MediaAlbumContentType contentTypes = MediaAlbumContentType.All);\n    \n    int GetMediaFilesCount(MediaAlbumContentType contentTypes = MediaAlbumContentType.All);\n}\n```\n\nGet all images and videos from an album:\n```csharp\nIMediaFile[] files = album.GetAllMediaFiles(MediaAlbumContentType.Images | MediaAlbumContentType.Videos);\n```\n\nGet the file's thumbnail:\n```csharp\n var file = files[0] as IMediaFileWithImage;\n\n ImageStream stream = file.GetImage(MediaFileGetImageOptions.CreateDefaultThumb());\n```\n\nGet custom image:\n```csharp\nvar file = files[0] as IMediaFileWithImage;\n\nvar options = new MediaFileGetImageOptions\n{\n    Width = 500,\n    Height = 500,\n    Quality = 90,\n    Orientation = MediaFileImageOrientation.Right,                          // Rotate image to right\n    ResizeAspect = MediaFileGetImageOptions.ImageResizeAspect.AspectFit     \n};\n\nImageStream stream = file.GetImage(options);\n```\n\nGet the full size file's stream:\n```csharp\nStream stream = files[0].GetStream();\n```\n\n### Android specific in your BaseActivity or MainActivity (for Xamarin.Forms) add this code:\n```csharp\nusing MediaFilesManager;\nusing Xamarin.Forms;\n\nprotected override void OnCreate(Bundle bundle)\n{\n    base.OnCreate(bundle);\n\n    global::Xamarin.Forms.Forms.Init(this, bundle);\n\n    MediaFileManager.Initialize(Forms.Context);\n\n    LoadApplication(new App());\n}\n\npublic override void OnRequestPermissionsResult(int requestCode, string[] permissions, [GeneratedEnum] Permission[] grantResults)\n{\n    base.OnRequestPermissionsResult(requestCode, permissions, grantResults);\n\n    MediaFileManager.Current.OnRequestPermissionsResult(requestCode, permissions, grantResults);\n}\n```\n### Samples\n- Albums\n\u003cimg src=\"https://raw.githubusercontent.com/FelipeNicoletto/MediaFilesManager/master/Images/image_1.png\" width=\"280\" /\u003e\n\n- Photos\n\u003cimg src=\"https://raw.githubusercontent.com/FelipeNicoletto/MediaFilesManager/master/Images/image_2.png\" width=\"280\" /\u003e\n\n\u003cimg src=\"https://raw.githubusercontent.com/FelipeNicoletto/MediaFilesManager/master/Images/image_3.png\" width=\"280\" /\u003e\n\n- Rotated\n\u003cimg src=\"https://raw.githubusercontent.com/FelipeNicoletto/MediaFilesManager/master/Images/image_4.png\" width=\"280\" /\u003e\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffelipenicoletto%2Fmediafilesmanager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffelipenicoletto%2Fmediafilesmanager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffelipenicoletto%2Fmediafilesmanager/lists"}