unity 截图/图片保存到手机相册

从unity保存图片到相册,游戏中需要一些保存图片到相册的操作,在这里分享一些自己在网上查的资料。话不多说直接上代码。

public IEnumerator getTexture2d(Texture2D t)

    {
        //截图操作  
        yield return new WaitForEndOfFrame();

        //截图保存的图片

        //Texture2D t = new Texture2D(Screen.width, Screen.height, TextureFormat.RGB24, false);
        //t.ReadPixels(new Rect(0, 0,Screen.width, Screen.height), 0, 0, true);//设置屏幕的大小

        byte[] bytes = t.EncodeToPNG();
        t.Compress(true);
        t.Apply();

        //获取系统时间  
        System.DateTime now = new System.DateTime();
        now = System.DateTime.Now;
        string filename = string.Format("image{0}{1}{2}{3}.png", now.Day, now.Hour, now.Minute, now.Second);
        //记录每一个截图名字  
        StreamWriter sw;
        FileInfo ft = new FileInfo(filepath);
        if (!ft.Exists)
        {
            sw = ft.CreateText();
        }
        else
        {
            sw = ft.AppendText();
        }
        sw.WriteLine(filename);
        sw.Close();
        sw.Dispose();
        //应用平台判断,路径选择  
        if (Application.platform == RuntimePlatform.Android)
        {
            string origin = Path_save;
            destination = "/mnt/sdcard/DCIM/abuddz";
            if (!Directory.Exists(destination))
            {
                Directory.CreateDirectory(destination);
            }
            destination = destination + "/" + filename;
            Path_save = destination;


            //保存文件  
            Debug.Log("路径:" + Path_save);
            File.WriteAllBytes(Path_save, bytes);

            //在这里要去刷新一下,不然相册显示不出来

            AndroidJavaClass obj = new AndroidJavaClass("com.ryanwebb.androidscreenshot.MainActivity");
            obj.CallStatic<bool>("scanMedia", Path_save);
        }
        else if (Application.platform == RuntimePlatform.IPhonePlayer)
        {
            string origin = Path_save;
            destination = Application.persistentDataPath;
            if (!Directory.Exists(destination))
            {
                Directory.CreateDirectory(destination);
            }
            destination = destination + "/" + filename;
            Path_save = destination;


            //保存文件  
            Debug.Log("路径:" + Path_save);
            File.WriteAllBytes(Path_save, bytes);
            //发送给ios 发送路径
            iOSSaveQR(Path_save);
        }
    }

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值