GF显示PNG图片的问题

我的PNG图片是有透明背景的,但是我用
if (img.flags & IMG_TRANSPARENCY) {
/* we can handle transparency in GF using chroma */
gf_chroma_t chroma;
memset(&chroma, 0, sizeof chroma);
chroma.mode = GF_CHROMA_OP_SRC_MATCH | GF_CHROMA_OP_NO_DRAW;
if (img.format & IMG_FMT_PALETTE) {
chroma.color0 = img.palette[img.transparency.index];
} else if (IMG_FMT_BPP(img.format) < 24) {
chroma.color0 = img.transparency.rgb16;
} else {
chroma.color0 = img.transparency.rgb32;
}
gf_context_set_chroma(*p_context, &chroma);
}
这种办法flag总是认为不存在透明背景,结果总是显示图片周边一圈白色。请问如何才能显示正确呢?

谢谢