使用GUI显示裁切图片.(给情儿沫沫的答复)
unity3d吧
全部回复
仅看楼主
level 9
hjs19871126 楼主

public Texture2D orgTexture; //原始图片.建议不要选择太大的图片...那样的话会消耗很大的
Texture2D showTexture; //计算出来的图片
public Rect showPos = new Rect(0, 0, 120, 120);//屏幕显示位置
public int height = 0; //设定高度(调节这个可以得到裁切后的图像)
int orgHeight = -1; //比对变化
void Start() {
if (orgTexture != null)
{
showTexture = new Texture2D(orgTexture.width, orgTexture.width, TextureFormat.ARGB32, false);
}
}
void OnGUI()
{
height = Mathf.Clamp(height, 0, showTexture.height);
if (height != orgHeight)
{
orgHeight = height;
showTexture.SetPixels(0, 0, showTexture.width, orgHeight, orgTexture.GetPixels(0, 0, showTexture.width, orgHeight));
Color[] tmp = new Color[showTexture.width * (showTexture.height - orgHeight)];
for (int i = 0; i < tmp.Length; i++)
tmp[i] = new Color(0, 0, 0, 0);
showTexture.SetPixels(0, orgHeight, showTexture.width, showTexture.height - orgHeight, tmp);
showTexture.Apply();
}
GUI.DrawTexture(showPos, showTexture);
}
2013年04月10日 03点04分 1
level 9
hjs19871126 楼主
沙发!!!是不是我太较真了??....
2013年04月10日 03点04分 2
level 9
hjs19871126 楼主
忘了说了...
orgTexture格式(): Format: ARGB32, RGBA32, BGRA32, RGB24, Alpha8, DXT. Read/Write Enabled勾选上
2013年04月10日 04点04分 3
level 6
晕死,你这是自己动态绘制一张图片,这样消耗当然大了,我是说裁剪显示的方法,而你是获取图片的颜色信息,然后赋值到另一张图片上再显示,这样是不是有点太耗资源……
不过话说回来,U3D没有图片绘制的方法吗?SetPixels()这方法应该是用CPU去处理的吧?效率会慢好多倍呢……
我以前用Java写过一个图片处理的小程序,有高斯模糊、径向模糊、动感模糊、锐化、调色等功能,我试过如果自己去算,然后用setRGB的方法去做,效率会很差,而如果只算出滤镜矩阵,直接调用API去卷积的话,效率会高很多倍。还有图像绘制也一样,同样对一个像素绘制,用设置颜色去做就很慢,而用画点去做就快很多倍,所以我当初发帖子问的问题就是:Java里有一个方法是setClip,是只绘制某个形状内部的区域,对外部是不进行绘制的,我想问问U3D里有没有类似的方法。
2013年04月10日 05点04分 4
貌似没有吧....其实我写的这个也就是相当于一个Buffer.然后把这个Buffer给刷到屏幕上. 另外我这个也做了一点优化,没有时刻调用.没有用SetPixel,而是用了SetPixels.这个也相当于是SetClip了...[汗] 如果真的想要节省的话.建议还是不要在OnGUI里面写东西... 我写过一个修改mesh的插件.饼状冷却技能条.
2013年04月10日 05点04分
回复 hjs19871126 :我哪个帖子里已经有人回答了方法了,GUI.DrawTextureWithTexCoords可以裁剪显示,GUI.BeginGroup也可以。
2013年04月10日 05点04分
回复 情儿沫沫 :看来一直都是我理解错误了...唉...浪费感情啊..太浪费了..
2013年04月10日 05点04分
回复 hjs19871126 :[汗]
2013年04月10日 09点04分
level 9
楼主貌似有openGL的经验呀,这种绘制图形的方法以前opengl里用了不少。。。
2013年04月12日 07点04分 5
原理都差不多
2013年04月12日 18点04分
level 3
女程序猿 女程序猿!!!~~~~
╭(′▽`)╯
2013年06月08日 06点06分 6
我是男程序员...
2013年06月09日 01点06分
头像好有爱!!!!!!!!!!!!!
2013年06月09日 01点06分
回复 mayaxiaoan :哇刚看清是<这个杀手不太冷>
2013年06月09日 02点06分
回复 hjs19871126 :哟西
2013年06月09日 06点06分
level 13
居然在这里发现了算法帝的奸情~~~~~
2013年06月08日 06点06分 7
我去!你这个头像让我邪恶了...
2013年06月09日 01点06分
回复 hjs19871126 :怎么邪恶了,头像是三爷在吃榴莲而已~~~~~
2013年06月09日 01点06分
回复 mayaxiaoan :[]太亮了
2013年06月09日 02点06分
晴儿沫沫是女的嘛?》》
2013年06月09日 02点06分
1