Hi, we need your help.
We have to save an image captured by device camera in a local gallery and load it in a second time.
How transform my image in bytes for save them in a variable and load it?
My code is:
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using UnityEngine;
public class RichiamoCamera : MonoBehaviour
{
// Start is called before the first frame update
void Update()
{
}
private void OnMouseOver()
{
if (Input.GetMouseButtonDown(0))
{
// Don't attempt to use the camera if it is already open
if (NativeCamera.IsCameraBusy())
return;
TakePicture(512);
}
}
private void TakePicture(int maxSize)
{
NativeCamera.Permission permission = NativeCamera.TakePicture((path) =>
{
Debug.Log("Image path: " + path);
if (path != null)
{
// Create a Texture2D from the captured image
Texture2D texture = NativeCamera.LoadImageAtPath(path, maxSize);
if (texture == null)
{
Debug.Log("Couldn't load texture from " + path);
return;
}
// Assign texture to a temporary quad and destroy it after 5 seconds
GameObject quad = GameObject.CreatePrimitive(PrimitiveType.Quad);
quad.transform.position = Camera.main.transform.position + Camera.main.transform.forward * 2.5f;
quad.transform.forward = Camera.main.transform.forward;
quad.transform.localScale = new Vector3(1f, texture.height / (float)texture.width, 1f);
Material material = quad.GetComponent().material;
if (!material.shader.isSupported) // happens when Standard shader is not included in the build
material.shader = Shader.Find("Legacy Shaders/Diffuse");
material.mainTexture = texture;
Destroy(quad, 5f);
}
}, maxSize);
Debug.Log("Permission result: " + permission);
}
}
I need insert the code for save the photo and load it in a this code after transform a screen shot in texture2D.
↧