解读Texture2D.ReadPixels

ok… 就觉得有什么东西落下忘了记录,直到刚刚才想起,然后就马不停蹄的来到博客准备记录。
同样,大神勿喷,不喜勿喷,欢迎拍砖,而且是狠狠的拍。

那好,如题,这次我们就来说说2D纹理类下边的读取像素并将之保存为纹理的方法,那为什么要讲这个方法呢?我是觉得这个函数的参数值的去理解,因为,倘若有的读者去做截屏处理的时候,这几个参数的把我尤为重要,当然,有的读者可能会说到Unity中的截屏直接可以用Application中的一个CaptureScreenshot ()方法,然后就完事,那么我想说的是,这个没错,可是这样的处理会将整个Game视图都截取出来,那有些情况我们并不想这样,只是想将Game视图的局部截取出来,那么这个情况下使用CaptureScreenshot就不合适了,而我们通常的做法是读取屏幕像素信息,并将之转化为PNG或JPG,那么这其中ReadPixels就显得重要了,理解好里边的参数,我们就可以随意的截取我们在屏幕中想要的部分.

ok,那有的读者可能会说,理解参数我自己看说明不久好了,或者自己百度,其实,我想说的是,我当时理解反正是理解蛮久的,脚本手册和百度中都没有找到满意的答案,所以才在这里记录。

好了,我们先不着急的讲这个函数,我们先来讲讲说如何将局部屏幕保存为PNG格式的图片。我这里的实现方式是:使用一张2D的纹理贴图,通过该贴图读取屏幕的像素信息并将之转换为PNG格式图片。就一句话的原理,估计有的读者就范晕了,不知道我在讲什么,不过,我下边通过代码的讲解就”柳暗花明”了,哈哈。

既然是使用一张2D纹理, 那么是不是需要创建出一张2D纹理,使用Texture2D类的构造函数就可以,该构造函数原型是static function Texture2D (width : int, height : int, format : TextureFormat, mipmap : bool) : Texture2D ;
可以看到通过该构造函数可以指定该2d贴图的宽,号,格式等,具体的含义有兴趣的读者可以翻阅unity脚本手册,这里不过多阐述,因为一则比较简单,二则这不是我们的重点。

那么好了,2D贴图有了,我们就可以读取屏幕的局部像素信息保存在该贴图中了,我们可以使用Texture2D 类中的ReadPixels来获取,该函数的原型是:
function ReadPixels (source : Rect, destX : int, destY : int, recalculateMipMaps : bool = true) : void
官方的解释是:
1.Read scr

  • 20
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值