Вопрос : Преобразуйте изображение к прозрачному PNG 8bit в сети многоточия

Я использую dll FreeImage для того чтобы создать прозрачное PNG 8bpp. Я получили, что следующий Кодего преобразовал изображение в C++ using class= " lineNumbers " >
1 >

#include «FreeImage.h»
основа int (argc int, argv char* []) {
FIBITMAP *hDIB24bpp = FreeImage_Load (FIF_BMP, «test.bmp», 0);
если (hDIB24bpp) {, то
// цвет-квантует 24bpp (результаты в поэлементном карте 8bpp для того чтобы установить транспарант)
FIBITMAP *hDIB8bpp = FreeImage_ColorQuantize (hDIB24bpp, FIQ_WUQUANT);
// получает палитру и считает ярким - зеленый цвет
*Palette RGBQUAD = FreeImage_GetPalette (hDIB8bpp);
Транспарант БАЙТА [256];
для (неподписанный I = 0; iий < 256; i++) {
Транспарант [I] = 0xFF;
если (&& >= 0xFE палитры [I] .rgbGreen
&& == 0x00 палитры [I] .rgbBlue
== 0x00 палитры [I] .rgbRed) {
Транспарант [I] = 0x00;
}
}
// установило таблицу tranparency
FreeImage_SetTransparencyTable (hDIB8bpp, транспарант, 256);
// сохраняет изображение 8bpp как прозрачное PNG
FreeImage_Save (FIF_PNG, hDIB8bpp, «test.png», 0);
FreeImage_Unload (hDIB24bpp);
FreeImage_Unload (hDIB8bpp);
}
возвращение 0;
} class= " ясное " >


After
ошибки «не может подразумеваем преобразовать тип «System.IntPtr» к 'FreeImageAPI.RGBQUAD» в этом палитра RGBQUAD line
" = FreeImage.GetPalette (hDIB8bpp); ». Пока такое же Кодий уступано class= " lineNumbers " >
1 >

FIBITMAP hDIB24bpp = FreeImage.Load (FREE_IMAGE_FORMAT.FIF_JPEG, «c: /Sunset.jpg», 0);
            FIBITMAP hDIB8bpp = FreeImage.ColorQuantize (hDIB24bpp, FREE_IMAGE_QUANTIZE.FIQ_WUQUANT);
            Палитра RGBQUAD = FreeImage.GetPalette (hDIB8bpp);
            транспарант байта [] = новый байт [256];
            для (int iий = 0; iий < 256; i++)
            {
                транспарант [I] = 0xFF;
                если (&& >= 0xFE палитры [I] .rgbGreen
                && == 0x00 палитры [I] .rgbBlue
                == 0x00 палитры [I] .rgbRed)
                {
                    транспарант [I] = 0x00;
                }
            } class= " ясное " >
class=

Ответ : Преобразуйте изображение к прозрачному PNG 8bit в сети многоточия

Попытайтесь это Кодий для того чтобы получить фактические данные по RGBQUAD.
1:
2:
*pPalette RGBQUAD = FreeImage.GetPalette (hDIB8bpp);
Палитра = *pPalette RGBQUAD;
Другие решения  
  •  Как я добавляю кнопки на форме PDF для того чтобы добавить/извлекаю рядки данных?
  •  Шнур ошибки в блоке задвижки?
  •  сколько вариант сервера SQL на одной машине
  •  Внешний вид 2007 не может архивный файл открытой сети сохраненный
  •  Активно директория DNS записывает вопрос
  •  Отчет о доступа 2010 экспорта к CSV с коллекторами?
  •  Прокладчик OCE 9400 не начинает
  •  как добавить десятичное место в формуле в отчете о кристалла seagate
  •  Windows XP и Мичрософт Оутлоок и проблемы установителя Windows
  •  VB6 к VS2010 - консультации тренировки?
  •  
    programming4us programming4us