unity3d压缩截图

unity3d压缩截图

ID:10199643

大小:29.06 KB

页数:22页

时间:2018-06-12

unity3d压缩截图_第1页
unity3d压缩截图_第2页
unity3d压缩截图_第3页
unity3d压缩截图_第4页
unity3d压缩截图_第5页
资源描述:

《unity3d压缩截图》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Unity3D压缩截图Unity3D截图用Application.CaptureScreenshot函数,截出来的图超过1mb。如果直接用来分享微信朋友圈会失败的,所以需要压缩截图。压缩截图,如果用C#的System.Drawing,在Android上又报缺少gdiplus.dll库bug,好麻烦。所以用纯代码的压缩类,才什么问题都没有。于是我在网上找到了JPGEncoder.cs纯代码压缩类。最后压出来的图片竟然才130kb。压缩方法步骤如下:一、添加函数1二、在MonoBehaviour类调用2三、将JPGEncoder.cs添加进工程2一

2、、添加函数IEnumeratorCaptureScreenshotJPG(Rectrect){yieldreturnnewWaitForEndOfFrame();//先创建一个的空纹理,大小可根据实现需要来设置TextureFormataTextureFormat;;aTextureFormat=TextureFormat.RGB24;Texture2DscreenShot=newTexture2D((int)(rect.width),(int)(rect.height),aTextureFormat,false);//读取屏幕像素信息并存储为

3、纹理数据,screenShot.ReadPixels(rect,0,0);screenShot.Apply();JPGEncoderencoder=newJPGEncoder(screenShot,20);//质量1~100encoder.doEncoding();while(!encoder.isDone)yieldreturnnull;stringfilename=Application.persistentDataPath+"/"+"screenName.png";System.IO.File.WriteAllBytes(filename

4、,encoder.GetBytes());Debug.Log(string.Format("截屏了一张图片:{0}",filename));}二、在MonoBehaviour类调用调用StartCoroutine(CaptureScreenshotJPG(newRect(0,0,Screen.width,Screen.height)));三、将JPGEncoder.cs添加进工程。可以从http://mcain.bluehoststaff.com/gamedesignftp/backup_Corey/Mega-Fiers/Scripts/Meg

5、aGrab/JPGEncoder.cs拷贝。下面JPGEncoder.cs是我从上面链接拷贝下来,修改过的。建议用下面的JPGEncoder.cs#if!UNITY_FLASHusingUnityEngine;usingSystem.Collections;usingSystem.Collections.Generic;usingSystem.IO;//Copyfromhttp://mcain.bluehoststaff.com/gamedesignftp/backup_Corey/Mega-Fiers/Scripts/MegaGrab/JPG

6、Encoder.cspublicclassByteArrayTool{privateMemoryStreamstream;privateBinaryWriterwriter;publicByteArrayTool(){stream=newMemoryStream();writer=newBinaryWriter(stream);}/***FunctionfromAS3--addabytetoourstream*/publicvoidwriteByte(bytevalue){writer.Write(value);}/***Spitbackall

7、bytes--toeitherpassviaWWWorsavetodisk*/publicbyte[]GetAllBytes(){byte[]buffer=newbyte[stream.Length];stream.Position=0;stream.Read(buffer,0,buffer.Length);returnbuffer;}}/***Thisshouldreallybeastruct--ifyoucare,declareitinC#*/classBitString{publicintlen=0;publicintval=0;}/**

8、*Anotherflashclass--emulatingthestufftheencoderuses*/publicclassBitmapData{

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。