При помощи GDI+
требуется создать черно-белый Bitmap
и порисовать в нем попиксельно
Написал код:
// Creating 1-bit-per-pixel bitmap
Bitmap bitmap01(500, 300, PixelFormat1bppIndexed);
UINT size = bitmap01.GetPaletteSize();
ColorPalette* palette = (ColorPalette*)malloc(size);
bitmap01.GetPalette(palette, size);
palette->Flags = PaletteFlagsGrayScale;
palette->Entries[0] = Color::MakeARGB(255, 0, 0, 0);
palette->Entries[1] = Color::MakeARGB(255, 255, 255, 255);
bitmap01.SetPalette(palette);
bitmap01.SetPixel(10,20 , Color(palette->Entries[1]));
Последняя команда выполняется некорректно, в отличие от предыдущих команд, и выдает InvalidParameter. Пиксел не устанавливается.
Если картинка индексированная (например gif, 256 цветов), то любая операция из {SetPixel(), DrawRectangle(), GetNearestColor()} возвращает InvalidParameter.
Почему, как с этим сладить? Хочется нарисовать в gif красную линию.
Помогите плз кто знает — очень нужно.
Не работает даже такая связка
GetPixel(1, 1, &color); // успешно берет цвет
SetPixel(1, 1, color); // возвращает InvalidParameter.
В случае же true-color юиьз — всё в порядке.