2011-01-21 114 views
0

我使用FreeImage C#wrapper成功地將具有透明背景的24位PNG圖像轉換爲4位PNG圖像。但是,4位圖像的背景變黑,而不是透明。這是代碼。有任何想法嗎? FIBITMAP dib = FreeImageAPI.FreeImage.LoadEx(「C:\ title_normal.png」); FreeImage.SetTransparent(dib,true); FreeImage.SaveEx(ref dib,「C:\ title_normal.png」,FREE_IMAGE_FORMAT.FIF_PNG,FREE_IMAGE_SAVE_FLAGS.PNG_Z_DEFAULT_COMPRESSION,FREE_IMAGE_COLOR_DEPTH.FICD_04_BPP,true);FreeImage中的透明度

回答

2

其實我想通了。這裏是代碼,如果有人感興趣:

  dib = FreeImageAPI.FreeImage.LoadEx("C:\\title_selected.png"); 
      dib = FreeImage.ConvertColorDepth(dib, FREE_IMAGE_COLOR_DEPTH.FICD_04_BPP); 
      byte[] Transparency = new byte[1]; 
      Transparency[0] = 0x00; 
      FreeImage.SetTransparencyTable(dib, Transparency); 
      FreeImage.Save(FREE_IMAGE_FORMAT.FIF_PNG, dib, "C:\\title_selected1.png", FREE_IMAGE_SAVE_FLAGS.DEFAULT); 

產生的圖像是4位透明PNG!