yxxiaobin 发表于 2016-9-5 22:36:46

[已解决] 如何选择性的透明化一张图片

本帖最后由 yxxiaobin 于 2016-9-16 00:50 编辑

打算做一个自定义小地图,模拟rpg网游的那种,想做成圆的,所以需要用一个α遮罩来产生圆形的小地图。尝试使用“设置对话框项的α遮罩”来制作,但是这个东西是自动随图片缩放的。很显然,对于一个类似网游的的小地图来说,地图图片肯定要比小地图窗口大的多,这样才能随角色走动而移动图片。所以上述动作就不适用了。
我想请问,有没有办法产生一个固定遮罩,让背后的图片露出指定部分,而和背后图片的大小无关?
如图:
红色代表小地图的图片。
黑色代表小地图面板,同时也是需要遮罩的部分。
蓝色代表应该显示出的小地图部分。

----------------------------------------------------------------------
根据孔明的回答,正确做法如下:
遮罩不要只露出中间圆形的小地图,要把边框也露出来,这样直接将遮罩应用于小地图面板就好了。因为边框和小地图都创建在面板上,所以都会被遮罩裁减,但是因为边框优先级高,所以会遮挡后边的小地图,只有中间圆形的透明区才能真正看到小地图,这样看起来小地图就是圆形的了。

放一个叠层的横切面说明优先级:


棕色代表小地图面板,红色代表小地图图片,绿色代表边框图片,黑色代表alpha遮罩。其中蓝色区域代表透明区。

最后放一张效果图:



疯人¢衰人 发表于 2016-9-6 07:29:24

这个应该是这样处理的,首先你需要创建黑色范围大小的面板,然后在面板上创建一个红色大小的地图图片,此时实际上地图图片只有在黑色范围内的部分才会被显示出来。然后你再设置Alpha遮罩就可以了

yxxiaobin 发表于 2016-9-6 11:36:22

疯人¢衰人 发表于 2016-9-6 07:29
这个应该是这样处理的,首先你需要创建黑色范围大小的面板,然后在面板上创建一个红色大小的地图图片,此时 ...

昨天可能太困了,脑子都不够用了。当时我这样想:如果Alpha遮罩用于面板,那么会把边框什么的也给遮罩掉,如果用于图片,遮罩的大小时随图片缩放的。
睡了一觉,来就想到:把alpha遮罩抠大一点,连边框区也露出来不就行了么。

疯人¢衰人 发表于 2016-9-6 12:15:45

yxxiaobin 发表于 2016-9-6 11:36
昨天可能太困了,脑子都不够用了。当时我这样想:如果Alpha遮罩用于面板,那么会把边框什么的也给遮罩掉 ...

实际上是用不着这样的
用面板限制外围范围是最好的方法,因为涉及屏幕长宽比,所以你这种方法的遮罩图片会比较大。
这样的方法实现圆形小地图,已经有做法了

yxxiaobin 发表于 2016-9-6 12:30:46

其实我就是用面板来遮盖外围的。根据我画的图可以知道,红色代表小地图,很大,但是黑色的面板区域比较小,这样超出部分就自动被隐藏了。开始只是搞不定alpha遮罩,可能因为前天晚上夜班,5点多才眯了一会儿,白天又加班,昨晚回家后脑袋就变成木头了,所以尽管我用了1分钟以上去思考解决方案,但很显然已经钻牛角尖了,完全没有思路,于是就发个帖子,放弃思考了。睡一觉起来,也没怎么特意想,但是瞬间就明白了......

截肢动物 发表于 2017-10-16 12:03:06

学会了 谢谢
页: [1]
查看完整版本: [已解决] 如何选择性的透明化一张图片