图片怎么去掉白色背景
vb吧
全部回复
仅看楼主
level 5
小猫丶1f 楼主
如图,人物图片背景是白色的,插入另一张地图图片后,有没有办法将人物融入到大背景中?
2024年01月17日 09点01分 1
level 8
学学PS
2024年01月17日 11点01分 3
PS 不行,程序运行的时候,地图背景不能变,人物要更换的
2024年01月17日 14点01分
@小猫丶1f 我的意思是把空白去掉,至于更换人物,这个是VB要处理的。loadpicture()
2024年01月17日 23点01分
@小猫丶1f 你上传的难道是一个图片么?
2024年01月18日 00点01分
对,人物和地图背景都是图片
2024年01月18日 03点01分
level 13
一种是做掩膜图,就是黑色边白色实体(实体指角色的颜色区)做一张,加上原图一张,用PaintPicture And 或Invert(因为我不用PaintPicture不是太了解参数),大概就这几个参数值变动就可以透明。
别一种是TransparentBlt API函数可以透明掉指定颜色(比如白色)。
这只是两种VB常用的方法,当然也可以将图片转成GIF,这样放Image里就可以透明,只是颜色有丢失。
如果高深一点就,GDI+函数,GDI+可以支持PNG图片(png可以直接带透明通道)。或者将图片转成32位的带Alpha通道的预乘位图,可以调用GDI的函数AlphaBlend显示也可以透明。
但大游戏都会用DirectX来做(DirectX可以支持PNG图片),是以上方法中最高效的,它直接操作底层硬件(硬件加速)
2024年01月17日 13点01分 4
可以说DirectX就是游戏专用的,GDI和GDI+函数都是用于桌面应用,VB的PaintPicture、Image、Picture都属于GDI范畴。一般小游戏GDI函数足矣,尤其是现在的电脑配置都很高,DirectX就当是你的另一个学习方向
2024年01月17日 14点01分
@小猫丶1f 可以的,小游戏大多采用的是掩膜图的作法,就是做掩膜图费时,尤其人物、敌人和NPC都有人很多方向和动作时,处理会花很多时间。TransparentBlt是比较折中的一种方法,不需要做掩膜图就可以透明掉白色,让人物与背景相融合。
2024年01月17日 14点01分
人物图片会改变的,而且原图都带有白底,但地图背景不能变,还是按你这样操作吗
2024年01月17日 14点01分
@隨風🍁缒夢 感谢感谢!!我研究研究
2024年01月17日 15点01分
level 5
小猫丶1f 楼主
颜色有缺失
2024年01月18日 12点01分 5
@小猫丶1f 动画是连续不同动作的图片连接而成(说白了就是不断切换不同动作图片),中间加点延时,Timer定时也可。如果非要用控件,就用MMControl,可以播放avi动画
2024年01月19日 01点01分
你这个图片边缘不是纯白色,TransparentBlt等方法也是解决不了的,一种是边缘自己再处理下,替换成白色,但是在深色背景下看起来可能会有比较明显的毛边(早期小的RPG游戏都是这样的)。如果你还是不能接受的话,就只能得到图片原图(这样图片原始应该是png格式或带Alpha通道的Bmp)
2024年01月18日 12点01分
如果是png就用GDI+函数(或GDI+解码png再调用GDI的AlphaBlend绘制),或者直接上DirectX
2024年01月18日 12点01分
@隨風🍁缒夢 我又处理了一下 GIF 图片,现在缺失很少了。顺便再问一下,VB 哪个控件可以使用动图或视频
2024年01月18日 14点01分
level 13
人物动作库,包含动作的帧动画
2024年01月19日 02点01分 6
动画就是这样做的,生成avi和gif是很难控制的,需要动作的每帧动画,这样可以随意控制帧动画延时,因为不同动作时的帧数也一样,如果普通站立时可能只有2帧,移动时可能4帧,攻击时可能动作有6帧,死亡时可能3帧
2024年01月19日 02点01分
嗯嗯,如果很多图片的话,处理成 GIF 格式就很费时了
2024年01月19日 02点01分
@小猫丶1f 对,游戏一般都有很多动作的帧动画,你那种可能几百,上千张就可以做出整个游戏,我那个游戏至少几万张、几十万张,到全部完工图片可能会有几百万张图片,游戏不同用到的图片量也相差很大
2024年01月19日 02点01分
你好,想问一下 Vb 游戏有没有可能做成联网的,或者联机。我现在做了一个双方在同一个电脑上操作的回合制小游戏,不知道有没有可能弄成像宝可梦对战那种联机游戏
2024年04月27日 04点04分
level 5
小猫丶1f 楼主
加上背景好多了,不过目前还没有做成动画的样子,只有两三张图片而已
2024年01月19日 02点01分 7
level 1
paintpicture 和。 bitblt 都可以实现。
最后有一个参数
要用两行来实现。 具体我忘了。
网上好像有。
2024年01月23日 15点01分 8
吧务
level 12
不错,鼓励下。试试用 AI 大模型问下如何调用 API。
2024年04月29日 14点04分 9
level 4
光年之外
2025年02月22日 07点02分 10
level 4
闺蜜心我也
2025年02月22日 07点02分 11
level 4
给你哦名字洗语音
2025年02月22日 07点02分 12
level 4
行姓名哟哟
2025年02月22日 07点02分 13
level 4
闺蜜嘻嘻语音
2025年02月22日 07点02分 14
level 4
革命友谊
2025年02月22日 07点02分 15
1