Прозрачность в FreeImage - PullRequest
       16

Прозрачность в FreeImage

0 голосов
/ 21 января 2011

Я успешно конвертирую 24-битное PNG-изображение с прозрачным фоном в 4-битное PNG-изображение с помощью оболочки FreeImage C #. Однако фон 4-битного изображения становится черным, а не прозрачным. Вот код Есть идеи?

FIBITMAP dib = FreeImageAPI.FreeImage.LoadEx ("C: \ title_normal.png"); FreeImage.SetTransparent (dib, true); FreeImage.SaveEx.

Ответы [ 2 ]

2 голосов
/ 21 января 2011

На самом деле я разобрался.Вот код, если кому-то интересно:

            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!

1 голос
/ 21 января 2011

Не думаю, что в 4-битном png есть канал для Albha.

проверьте здесь

http://en.wikipedia.org/wiki/Portable_Network_Graphics

...