Add support to create palettes for Indexed images (fix #751)

This commit is contained in:
David Capello 2015-08-20 12:37:58 -03:00
parent dd6c028477
commit 0d5ba77ba4
5 changed files with 9 additions and 11 deletions

View File

@ -55,10 +55,9 @@ public:
private:
void onJob() override {
render::create_palette_from_rgb(m_sprite,
0, m_sprite->lastFrame(),
m_withAlpha, m_palette,
this);
render::create_palette_from_sprite(
m_sprite, 0, m_sprite->lastFrame(),
m_withAlpha, m_palette, this);
}
bool onPaletteOptimizerContinue() override {
@ -83,9 +82,7 @@ ColorQuantizationCommand::ColorQuantizationCommand()
bool ColorQuantizationCommand::onEnabled(Context* context)
{
ContextWriter writer(context);
Sprite* sprite(writer.sprite());
return (sprite && sprite->pixelFormat() == IMAGE_RGB);
return context->checkFlags(ContextFlags::ActiveDocumentIsWritable);
}
void ColorQuantizationCommand::onExecute(Context* context)

View File

@ -739,7 +739,7 @@ void fop_post_load(FileOp* fop)
sprite->getPalettes().size() <= 1 &&
sprite->palette(frame_t(0))->isBlack()) {
base::SharedPtr<Palette> palette(
render::create_palette_from_rgb(
render::create_palette_from_sprite(
sprite, frame_t(0), sprite->lastFrame(), true,
nullptr, nullptr));

View File

@ -369,7 +369,8 @@ void ColorBar::onFocusPaletteView()
void ColorBar::onBeforeExecuteCommand(CommandExecutionEvent& ev)
{
if (ev.command()->id() == CommandId::SetPalette ||
ev.command()->id() == CommandId::LoadPalette)
ev.command()->id() == CommandId::LoadPalette ||
ev.command()->id() == CommandId::ColorQuantization)
showRemap();
}

View File

@ -33,7 +33,7 @@ namespace render {
using namespace doc;
using namespace gfx;
Palette* create_palette_from_rgb(
Palette* create_palette_from_sprite(
const Sprite* sprite,
frame_t fromFrame,
frame_t toFrame,

View File

@ -44,7 +44,7 @@ namespace render {
};
// Creates a new palette suitable to quantize the given RGB sprite to Indexed color.
Palette* create_palette_from_rgb(
Palette* create_palette_from_sprite(
const Sprite* sprite,
frame_t fromFrame,
frame_t toFrame,