- 注册时间
- 2014-9-18
- 最后登录
- 2014-9-25
- 阅读权限
- 20
- 积分
- 30
- 精华
- 0
- 帖子
- 7
|
本帖最后由 孤枫独行 于 2014-9-22 17:29 编辑
lufy 发表于 2014-9-22 16:12
利用颜色新建LBitmapData的话,
应该是var bitmapData = new LBitmapData('#123456', 0, 0, 100, 100);
你 ...
我的需求是这样的,我需要截取一张大图中的一块小图,然后对这块小图的LBitmapData变化颜色
代码:
var loadingLayer, imgList, mainLayer;
var imgData = new Array(
{name:"btn_down",path:"../resource/WoodenAtlas.png"}
);
function main() {
mainLayer = new LSprite();
addChild(mainLayer);
openTimer(mainLayer);
loadingLayer = new LoadingSample3();
addChild(loadingLayer);
LLoadManage.load(
imgData,
function(progress){
loadingLayer.setProgress(progress);
},
gameInit
);
}
function gameInit(result) {
imgList = result;
removeChild(loadingLayer);
loadingLayer = null;
var bd = new LBitmapData(imgList['btn_down']);
var bt = new LBitmap(new LBitmapData(imgList['btn_down'], 188, 55, 17, 17)); // 图片是512*512,反正就是跟设置的大小不一样就行
mainLayer.addChild(bt);
var arr, img = [225, 200, 150, 255];
console.log(bt.bitmapData.width);
bt.bitmapData.lock();
for (var i = 0; i < bt.bitmapData.width; i++) {
for (var j = 0; j < bt.bitmapData.height; j++) {
arr = bt.bitmapData.getPixel(i, j);
arr[0] = arr[0] / 255 * img[0] >> 0;
arr[1] = arr[1] / 255 * img[1] >> 0;
arr[2] = arr[2] / 255 * img[2] >> 0;
bt.bitmapData.setPixel(i, j, arr);
}
}
bt.bitmapData.unlock();
} |
|