0
A
回答
1
I solved this issue by using following method:-
I create one rendure texture and add an sprite on it.
I found answer here:- http://discuss.cocos2d-x.org/t/render-texture-get-percentage-of-transparent/21123
here is the code:-
var WINDOW_WIDTH = cc.director.getWinSize().width;
var WINDOW_HEIGHT = cc.director.getWinSize().height;
rt = new cc.RenderTexture(WINDOW_WIDTH, WINDOW_HEIGHT,
sprite.getTexture().getPixelFormat());
rt.setPosition(WINDOW_WIDTH/2, WINDOW_HEIGHT/2);
this.addChild(rt, 5);
getPercentageTransparent: function() {
//
var s = rt.getSprite().getContentSize();
var tx = s.width;
var ty = s.height;
var bitsPerPixel = 4 * 8;
var bytesPerPixel = bitsPerPixel/8;
var bytesPerRow = bytesPerPixel * tx;
var myDataLength = bytesPerRow * ty;
var numberOfPixels = tx * ty;
var numberOfTransparent = 0;
var rawImagePixels = new Uint8Array(myDataLength);
rt.begin();
gl.readPixels(0, 0, tx, ty, gl.RGBA, gl.UNSIGNED_BYTE, rawImagePixels);
rt.end();
var x, y;
for (y = 0; y < ty; y++) {
// just want the last byte (alpha) for each pixel
for (x = 0; x < tx; x++) {
var alpha = rawImagePixels[(y * 4 * tx + ((x * 4) + 3))];
if (alpha < 1) {
numberOfTransparent++;
}
}
}
cc.log("Number of pixels" + numberOfPixels);
cc.log("Number of Trasparent" + numberOfTransparent);
cc.log("percentage " + (numberOfTransparent/numberOfPixels) * 100);
return (numberOfTransparent/numberOfPixels) * 100;
},
相关问题
- 1. 如何从Silverlight中的图像获取像素ARGB信息?
- 2. Point Sprite Alpha Blending
- 3. 如何获取片段着色器中的像素信息?
- 4. 如何从图像中获取信息?
- 5. cocos2d sprite动画
- 6. 如何使用OpenGLes和cocos2d在3D中旋转Sprite像'Fruit Ninja'
- 7. 如何获得cocos2d中的坐标?
- 8. 如何获得ehcache 3.1统计信息
- 9. 如何获得所有CPU信息
- 10. “validates_uniqueness_of” - 如何获得错误信息
- 11. 我如何获得Liberator异常信息?
- 12. 如何获得serverside信息到JavaScript?
- 13. 如何获得在C BIOS信息++
- 14. 我如何获得instagram帐户信息
- 15. domdocument如何获得信息和图片
- 16. 如何使用scala获得此信息
- 17. 如何获得此ListActivity更新信息?
- 18. 如何获得摄像头信息与WMI
- 19. Play商店中的信息Alpha测试
- 20. Cocos2D ccTouchesMoved Sprite and Objects
- 21. cocos2d sprite动画“SIGABRT”
- 22. 重置Sprite - Box2d(Cocos2d)
- 23. “像素尺寸信息”中的gnuplot
- 24. 如何获得轮廓的像素点?
- 25. 如何在Quartz中剪切或更改图像的alpha(像素)?
- 26. 的DocuSign:获得信封信息
- 27. Actionscript 3 sprite clear with alpha
- 28. Cocos2D - 如何获得标签的价值
- 29. Android,检查像素的alpha?
- 30. 替换sprite中的图像 - iphone的cocos2d游戏开发