我正在使用 LPDIRECT3DTEXTURE9 来保存我的图像。
这是用于显示我的图片的功能。
int drawcharacter(SPRITE& person, LPDIRECT3DTEXTURE9& image)
{
position.x = (float)person.x;
position.y = (float)person.y;
sprite_handler->Draw(
image,
&srcRect,
NULL,
&position,
D3DCOLOR_XRGB(255,255,255));
return 0;
}
根据这本书,我有显示为最后一个参数的 RGB 颜色不会显示在屏幕上,这就是你创建透明度的方式。
这在大多数情况下都有效,但会在我的图像和图片边缘留下一条粉红色的线。经过反复试验,我发现如果我回到 Photoshop,我可以通过用粉红色绘制来消除粉红色框。这可以通过左侧的船只看到。
我开始认为 Photoshop 正在混合图像的边缘,因此尽管我没有证据,但背景并不是完全一样的粉红色阴影。
任何人都可以通过编程来帮助解决这个问题还是图像中的错误?
如果有人擅长 Photoshop,他们可以告诉我如何修复图像,我主要使用 png,但如有必要愿意更改。
编辑:按要求创建纹理代码
character_image = LoadTexture("character.bmp", D3DCOLOR_XRGB(255,0,255));
if (character_image == NULL)
return 0;