找回密码
 注册帐号

扫一扫,访问微社区

GUI IOS读取沙盒目录图片

7
回复
428
查看
[ 复制链接 ]
2初来乍到
101/150
排名
17814
昨日变化

5

主题

18

帖子

101

积分

Rank: 2Rank: 2

UID
90093
好友
0
蛮牛币
107
威望
0
注册时间
2015-4-7
在线时间
42 小时
最后登录
2019-5-24
2018-6-1 14:33:52 显示全部楼层 阅读模式
5蛮牛币
file:///C:/Users/zengll/Desktop/%E6%8D%95%E8%8E%B7.JPG我用这个方法加载沙盒目录中的.png图片,原始图片是256*256,读取出来的结果是个问号(?)图片,我尝试输出读取图片的大小,是个8*8大小的图片,安卓和编辑器可以正常读取,IOS就不行,为啥?



回复

使用道具 举报

2初来乍到
101/150
排名
17814
昨日变化

5

主题

18

帖子

101

积分

Rank: 2Rank: 2

UID
90093
好友
0
蛮牛币
107
威望
0
注册时间
2015-4-7
在线时间
42 小时
最后登录
2019-5-24
楼主 2018-6-1 14:35:40 显示全部楼层
   //TexturePath = Application.persistentDataPath + "/man1.png";
    Texture2D texture2d_2;
    public void UpdateInfomation(string infomation)
    {
        texture2d_2 = new Texture2D(256, 256, TextureFormat.ARGB32, false);
        //texture2d_2 = new Texture2D(256, 256);
        texture2d_2.LoadImage(ReadPNG(infomation));
        InitModelMat(texture2d_2);
        ErrorDialog.Instance.ShowDialog("当前图片大小信息:" + "[" + texture2d.width + "," + texture2d.height + "]");
        ErrorDialog.Instance.ShowDialog("当前图片格式信息:" + texture2d.format.ToString());
    }
    /// <summary>  
    /// 根据图片路径返回图片的字节流byte[]  
    /// </summary>  
    /// <param name = "imagePath" ></ param >
    /// < returns > 返回的字节流 </ returns >
    static byte[] ReadPNG(string path)
    {

        FileStream fileStream = new FileStream(path, FileMode.Open, System.IO.FileAccess.Read);

        fileStream.Seek(0, SeekOrigin.Begin);

        byte[] binary = new byte[fileStream.Length]; //创建文件长度的buffer   
        fileStream.Read(binary, 0, (int)fileStream.Length);

        fileStream.Close();

        fileStream.Dispose();

        fileStream = null;
        ErrorDialog.Instance.ShowDialog("图片byte流路径:" + path);

        ErrorDialog.Instance.ShowDialog("图片byte流信息:" + binary.Length);


        return binary;
    }
}
回复

使用道具 举报

5熟悉之中
875/1000
排名
4149
昨日变化

14

主题

246

帖子

875

积分

Rank: 5Rank: 5

UID
231366
好友
9
蛮牛币
1668
威望
0
注册时间
2017-7-10
在线时间
259 小时
最后登录
2019-5-15
2018-6-1 16:52:33 显示全部楼层
string readAddr;

    void Start()
    {
        readAddr = "file://" + Application.persistentDataPath + "/";

        StartCoroutine(LoadTextureFormLocal(readAddr + name + ".png"));//name是图片的名字
    }
    IEnumerator LoadTextureFormLocal(string name)
    {
        yield return new WaitForSeconds(1.5f);
        WWW www = new WWW(name);
        yield return www;
        if (www.isDone)
        {
            rawImage.texture = www.texture;
        }
    }
回复

使用道具 举报

2初来乍到
101/150
排名
17814
昨日变化

5

主题

18

帖子

101

积分

Rank: 2Rank: 2

UID
90093
好友
0
蛮牛币
107
威望
0
注册时间
2015-4-7
在线时间
42 小时
最后登录
2019-5-24
楼主 2018-6-4 10:25:37 显示全部楼层
安生李 发表于 2018-6-1 16:52
string readAddr;

    void Start()

多谢,我测试下。
回复

使用道具 举报

2初来乍到
101/150
排名
17814
昨日变化

5

主题

18

帖子

101

积分

Rank: 2Rank: 2

UID
90093
好友
0
蛮牛币
107
威望
0
注册时间
2015-4-7
在线时间
42 小时
最后登录
2019-5-24
楼主 2018-6-4 18:09:05 显示全部楼层
安生李 发表于 2018-6-1 16:52
string readAddr;

    void Start()

结果还是一个4*4的问号图片,安卓就可以,这是什么原因呢,IOS就是不行
回复

使用道具 举报

5熟悉之中
875/1000
排名
4149
昨日变化

14

主题

246

帖子

875

积分

Rank: 5Rank: 5

UID
231366
好友
9
蛮牛币
1668
威望
0
注册时间
2017-7-10
在线时间
259 小时
最后登录
2019-5-15
2018-6-6 09:28:44 显示全部楼层
徳马西亚 发表于 2018-6-4 18:09
结果还是一个4*4的问号图片,安卓就可以,这是什么原因呢,IOS就是不行

那就是你路径问题了,代码没问题的
回复

使用道具 举报

2初来乍到
101/150
排名
17814
昨日变化

5

主题

18

帖子

101

积分

Rank: 2Rank: 2

UID
90093
好友
0
蛮牛币
107
威望
0
注册时间
2015-4-7
在线时间
42 小时
最后登录
2019-5-24
楼主 2018-6-6 10:14:27 显示全部楼层
安生李 发表于 2018-6-6 09:28
那就是你路径问题了,代码没问题的

我输出日志www.error 和系统日志,如果是路径错了,应该会有异常(文件夹找不到),但是日志没有这些情况。
回复

使用道具 举报

5熟悉之中
875/1000
排名
4149
昨日变化

14

主题

246

帖子

875

积分

Rank: 5Rank: 5

UID
231366
好友
9
蛮牛币
1668
威望
0
注册时间
2017-7-10
在线时间
259 小时
最后登录
2019-5-15
2018-6-6 10:57:57 显示全部楼层
徳马西亚 发表于 2018-6-6 10:14
我输出日志www.error 和系统日志,如果是路径错了,应该会有异常(文件夹找不到),但是日志没有这些情况 ...

如果你确定路径没有问题,yield return new WaitForSeconds(1.5f);这句你写了吗?你要给存和取留时间的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则