关于tjs实现图片去色的问题
我想请教一下,在界面中放入一张图片后,是否可以实现将其指定区域内去色,其它区域正常显示?或者有没有近似的效果的实现方法?感谢!!! 可以整张图片去色
可以将一张图片的一部分区域盖到另外一张图片上(copyRect)
因此如果用一张灰色图片(彩色图片加载到图层里然后使用action里的效果变灰色)和一张原来的彩色图片,实际显示的是彩色图片+贴上了灰色的一小块
应该可行?
但这个指定区域只能是方形。如果要不规则图形就得想别的办法了。 本帖最后由 寒少 于 2022-1-4 15:44 编辑
感谢D大,那现在就两种方案,多张图片独立去色,或者单张图片,覆盖多张灰度图片。我先做出来看看效果吧 VariableD 发表于 2022-1-4 15:17
可以整张图片去色
可以将一张图片的一部分区域盖到另外一张图片上(copyRect)
因此如果用一张灰色图片(彩 ...
D大,可否给一个copyRect的使用示例,文档里没有翻到 copyRectKAG系统里面本身用得蛮多,可以直接grep搜索,不过应该是layer class的内容(kr2文档)。里面有每个参数的详细说明。
Layer.copyRect機能/意味矩形コピータイプLayerクラスのメソッド
構文copyRect(dleft, dtop, src, sleft, stop, swidth, sheight)
引数
dleft コピー先の矩形の左端位置を ( コピー先レイヤの画像位置における ) ピクセル単位で指定します。
dtop コピー先の矩形の上端位置を ( コピー先レイヤの画像位置における ) ピクセル単位で指定します。
src コピー元のレイヤオブジェクトを指定します。
sleft コピーする矩形の左端位置を ( コピー元レイヤの画像位置における ) ピクセル単位で指定します。
stop コピーする矩形の上端位置を ( コピー元レイヤの画像位置における ) ピクセル単位で指定します。
swidth コピーする矩形の横幅を ( コピー元レイヤの画像位置における ) ピクセル単位で指定します。
sheight コピーする矩形の縦幅を ( コピー元レイヤの画像位置における ) ピクセル単位で指定します。
戻り値なし (void)
説明 指定されたコピー元レイヤの矩形部分を自分のレイヤの指定位置にコピーします。
コピーされる画像は、コピー先レイヤ ( メソッドを実行するレイヤ ) の Layer.face プロパティの値によって変わります。
dfAlpha (または dfBoth) : メイン画像とマスク画像がコピーされます
dfAddAlpha : メイン画像とマスク画像がコピーされます
dfOpaque (または dfMain) : Layer.holdAlpha プロパティが真の場合は、メイン画像のみがコピーされます ( マスク画像はコピーされません )。偽の場合はメイン画像とマスク画像がコピーされます
dfMask : マスク画像のみがコピーされます ( メイン画像はコピーされません )
dfProvince : 領域画像のみがコピーされます ( マスク画像やメイン画像はコピーされません )
コピー元のレイヤの Layer.face プロパティは無視されます。
このメソッドは、Layer.holdAlpha の影響は受けません (dfAlpha や dfAddAlpha の場合は holdAlpha に関わらずマスク画像もコピーされます)
我想把12层的半透明图片B盖进13层的A上,结果是A被扣了一块,是哪里有错误吗?
kag.fore.layers.face=dfAlpha;
kag.fore.layers.visible=true;
kag.tagHandlers.image(%);
kag.tagHandlers.image(%);
kag.fore.layers.copyRect(0, 0, kag.back.layers, 100, 100, 300, 300);
//kag.fore.layers.visible=false;
12你载入的是fore,copy的是back 依旧是A被扣下去了一块
kag.fore.layers.visible=true;
kag.tagHandlers.image(%);
kag.tagHandlers.image(%);
kag.fore.layers.copyRect(0, 0, kag.back.layers, 100, 100, 300, 300);
VariableD 发表于 2022-1-10 21:42
12你载入的是fore,copy的是back
{:3_44:}还是没有弄明白,捂脸 啊,看了一下,倒也不是……
我一般是直接用的TJS layer(new layer那种),所以没怎么研究过tagHandlers怎么处理这个。
//比如这种,这样加载图片,先看看两个图能不能正常显示,再叠一个区块上去。
var layer=new Layer(kag, kag.fore.stage);
layer.loadImages("face_setting_sample");
layer.setSizeToImageSize();
然后比如参数里面的100,100,300,300这种,最好都先从确定的0,0位置开始。
搞清楚它那个参数复制的是哪一块,有没有成功叠到,再来调参数。
页:
[1]
2