/unimgpicker

Image picker for Unity iOS/Android

Primary LanguageASPMIT LicenseMIT

unimgpicker

Image picker for Unity iOS/Android

unimgpicker_ios unimgpicker_android

Environment

The code is developed on following environments. Note that these are NOT minimum version requirements.

Platform OS IDE
iOS 13.3 Xcode 11.3.1
Android 9.0 (API 28) Android Studio 3.6.1

Getting Started

Define Photo Library Usage Description on Unimgpicker/Editor/NSPhotoLibraryUsageDescription.txt

ex: Unimgpicker/Editor/NSPhotoLibraryUsageDescription.txt

Use the image to create your profile.

Demo

Read image, create texture and render it on the Cube(MeshRenderer).

using UnityEngine;
using System.Collections;

namespace Kakera
{
    public class PickerController : MonoBehaviour
    {
        [SerializeField]
        private Unimgpicker imagePicker;

        [SerializeField]
        private MeshRenderer imageRenderer;

        void Awake()
        {
            // Unimgpicker returns the image file path.
            imagePicker.Completed += (string path) =>
            {
                StartCoroutine(LoadImage(path, imageRenderer));
            };
        }

        public void OnPressShowPicker()
        {
            // With v1.1 or greater, you can set the maximum size of the image
            // to save the memory usage.
            imagePicker.Show("Select Image", "unimgpicker", 1024);
        }

        private IEnumerator LoadImage(string path, MeshRenderer output)
        {
            var url = "file://" + path;
            var www = new WWW(url);
            yield return www;

            var texture = www.texture;
            if (texture == null)
            {
                Debug.LogError("Failed to load texture url:" + url);
            }

            output.material.mainTexture = texture;
        }
    }
}

Building Unimgpicker by Self

This repository contains Android project to develop Unimgpicker. You can make changes to the code and build your own jar.

$ unimgpicker_android
$ ./gradlew unityLibrary:Unimgpicker:exportJar