我希望能够将图像保存到内部存储器/图像/相机中。下面的代码使我可以保存到存储/图像/图片/ 有趣的是,当我从我的应用程序查看目录时,它显示出它是1970年1月1日创建的。感谢您的帮助!
我尝试将“ android.provider.MediaStore $ Images $ Media”更改为“ android.provider.MediaStore $ Images $ Camera”,但显然没有帮助。
private const string MediaStoreImagesMediaClass = "android.provider.MediaStore$Images$Media";
public static IEnumerator SavePhoto(){
yield return new WaitForEndOfFrame();
Texture2D texture = new Texture2D(Screen.width, Screen.height, TextureFormat.RGB24, false);
texture.ReadPixels(new Rect(0, 0, Screen.width, Screen.height), 0, 0, false);
texture.Apply();
SaveImageToGallery(texture, "testPhoto", "Saving photo to android");
}
public static string SaveImageToGallery(Texture2D texture2D, string title, string description)
{
using (var mediaClass = new AndroidJavaClass(MediaStoreImagesMediaClass))
{
using (var cr = Activity.Call<AndroidJavaObject>("getContentResolver"))
{
var image = Texture2DToAndroidBitmap(texture2D);
var imageUrl = mediaClass.CallStatic<string>("insertImage", cr, image, title, description);
return imageUrl;
}
}
}
public static AndroidJavaObject Texture2DToAndroidBitmap(Texture2D texture2D)
{
byte[] encoded = texture2D.EncodeToPNG();
using (var bf = new AndroidJavaClass("android.graphics.BitmapFactory"))
{
return bf.CallStatic<AndroidJavaObject>("decodeByteArray", encoded, 0, encoded.Length);
}
}