游戏蛮牛学习群(纯技术交流,不闲聊):539178957
游戏蛮牛 手机端
开启辅助访问
 找回密码
 注册帐号

扫一扫,访问微社区

问答求助

关注:542

当前位置:游戏蛮牛 技术专区 问答求助

_____________________________________________________________________________________________________________
问答求助版块规则:

  1、问题尽量描述清楚
      2、代码要放在代码块里
      3、附件最好放到云盘,然后把链接放到TXT文档里,上传TXT文档。【最好没有附件,你懂得】
      4、本版块回复不得无意义,如:顶、呵呵、不错......以及擦边!【真的会扣分的哦】严重者,封IP!
      5、问题得到解决,请选择最佳答案。
      6、若问题是你自己解决了,可以联系管理员,返还蛮牛币,写下你的答案,另有蛮牛币奖赏。
_____________________________________________________________________________________________________________
查看: 697|回复: 3

[脚本] Unity拍照保存到本地或者网上的脚本

[复制链接]  [移动端链接]
3偶尔光临
266/300
排名
15062
昨日变化
4

16

主题

83

帖子

266

积分

Rank: 3Rank: 3Rank: 3

UID
245465
好友
0
蛮牛币
1036
威望
0
注册时间
2017-9-22
在线时间
125 小时
最后登录
2018-7-18
发表于 2018-1-8 11:49:22 | 显示全部楼层 |阅读模式
10蛮牛币
本帖最后由 欧先生- 于 2018-1-8 16:07 编辑

        yield return new WaitForEndOfFrame();
        int width = Screen.width;
        int height = Screen.height;
        // 创建一个屏幕大小的纹理,RGB24 位格(24位格没有透明通道,32位的有)  
        Texture2D tex = new Texture2D(width, height, TextureFormat.RGB24, false);

        // 读取屏幕内容到我们自定义的纹理图片中  
        tex.ReadPixels(new Rect(0, height/2, width, height / 2), 0, 0);


        Debug.Log("height  " + height);
        // 保存前面对纹理的修改  
        tex.Apply();

        // 编码纹理为PNG格式  
        byte[] bytes = tex.EncodeToPNG();


        File.WriteAllBytes(Application.streamingAssetsPath + "/Picture/" + Time.time + ".png", bytes);


出来的图片只有一半。如果height/2只有上半.或者0的只有下半。求问怎么解决?



或者说求大神给可以直接用的脚本

回复

使用道具 举报

5熟悉之中
588/1000
排名
12753
昨日变化
3

8

主题

122

帖子

588

积分

Rank: 5Rank: 5

UID
165583
好友
1
蛮牛币
1295
威望
0
注册时间
2016-9-2
在线时间
382 小时
最后登录
2018-7-17
发表于 2018-1-8 11:49:23 | 显示全部楼层
     mCamera.targetTexture = mRender;
        mCamera.Render();
        RenderTexture.active = mRender;
        Texture2D mTexture = new Texture2D((int)mRect.width, (int)mRect.height, TextureFormat.RGB24, false);
        mTexture.ReadPixels(mRect, 0, 0);
        mTexture.Apply();
        mCamera.targetTexture = null;
        RenderTexture.active = null;
        Destroy(mRender);
        byte[] bytes = mTexture.EncodeToPNG();
        File.WriteAllBytes(mFileName, bytes);

回复

使用道具 举报

7日久生情
1627/5000
排名
2297
昨日变化
12

19

主题

451

帖子

1627

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
218268
好友
5
蛮牛币
1726
威望
0
注册时间
2017-4-18
在线时间
591 小时
最后登录
2018-7-18

活力之星

发表于 2018-1-8 14:17:42 | 显示全部楼层
你用Application里面有一个拍照的,你搜搜API

回复

使用道具 举报

5熟悉之中
977/1000
排名
2422
昨日变化
2

7

主题

86

帖子

977

积分

Rank: 5Rank: 5

UID
110654
好友
0
蛮牛币
2899
威望
0
注册时间
2015-6-26
在线时间
352 小时
最后登录
2018-7-18
发表于 2018-1-11 10:58:04 | 显示全部楼层
// 读取屏幕内容到我们自定义的纹理图片中  
        tex.ReadPixels(new Rect(0, height/2, width, height / 2), 0, 0);这个问题

回复

使用道具 举报

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

本版积分规则

快速回复 返回顶部 返回列表