mirror of
https://github.com/aseprite/aseprite.git
synced 2025-02-18 21:40:46 +00:00
Add support to create palettes for Indexed images (fix #751)
This commit is contained in:
parent
dd6c028477
commit
0d5ba77ba4
@ -55,10 +55,9 @@ public:
|
|||||||
private:
|
private:
|
||||||
|
|
||||||
void onJob() override {
|
void onJob() override {
|
||||||
render::create_palette_from_rgb(m_sprite,
|
render::create_palette_from_sprite(
|
||||||
0, m_sprite->lastFrame(),
|
m_sprite, 0, m_sprite->lastFrame(),
|
||||||
m_withAlpha, m_palette,
|
m_withAlpha, m_palette, this);
|
||||||
this);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool onPaletteOptimizerContinue() override {
|
bool onPaletteOptimizerContinue() override {
|
||||||
@ -83,9 +82,7 @@ ColorQuantizationCommand::ColorQuantizationCommand()
|
|||||||
|
|
||||||
bool ColorQuantizationCommand::onEnabled(Context* context)
|
bool ColorQuantizationCommand::onEnabled(Context* context)
|
||||||
{
|
{
|
||||||
ContextWriter writer(context);
|
return context->checkFlags(ContextFlags::ActiveDocumentIsWritable);
|
||||||
Sprite* sprite(writer.sprite());
|
|
||||||
return (sprite && sprite->pixelFormat() == IMAGE_RGB);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ColorQuantizationCommand::onExecute(Context* context)
|
void ColorQuantizationCommand::onExecute(Context* context)
|
||||||
|
@ -739,7 +739,7 @@ void fop_post_load(FileOp* fop)
|
|||||||
sprite->getPalettes().size() <= 1 &&
|
sprite->getPalettes().size() <= 1 &&
|
||||||
sprite->palette(frame_t(0))->isBlack()) {
|
sprite->palette(frame_t(0))->isBlack()) {
|
||||||
base::SharedPtr<Palette> palette(
|
base::SharedPtr<Palette> palette(
|
||||||
render::create_palette_from_rgb(
|
render::create_palette_from_sprite(
|
||||||
sprite, frame_t(0), sprite->lastFrame(), true,
|
sprite, frame_t(0), sprite->lastFrame(), true,
|
||||||
nullptr, nullptr));
|
nullptr, nullptr));
|
||||||
|
|
||||||
|
@ -369,7 +369,8 @@ void ColorBar::onFocusPaletteView()
|
|||||||
void ColorBar::onBeforeExecuteCommand(CommandExecutionEvent& ev)
|
void ColorBar::onBeforeExecuteCommand(CommandExecutionEvent& ev)
|
||||||
{
|
{
|
||||||
if (ev.command()->id() == CommandId::SetPalette ||
|
if (ev.command()->id() == CommandId::SetPalette ||
|
||||||
ev.command()->id() == CommandId::LoadPalette)
|
ev.command()->id() == CommandId::LoadPalette ||
|
||||||
|
ev.command()->id() == CommandId::ColorQuantization)
|
||||||
showRemap();
|
showRemap();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -33,7 +33,7 @@ namespace render {
|
|||||||
using namespace doc;
|
using namespace doc;
|
||||||
using namespace gfx;
|
using namespace gfx;
|
||||||
|
|
||||||
Palette* create_palette_from_rgb(
|
Palette* create_palette_from_sprite(
|
||||||
const Sprite* sprite,
|
const Sprite* sprite,
|
||||||
frame_t fromFrame,
|
frame_t fromFrame,
|
||||||
frame_t toFrame,
|
frame_t toFrame,
|
||||||
|
@ -44,7 +44,7 @@ namespace render {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// Creates a new palette suitable to quantize the given RGB sprite to Indexed color.
|
// 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,
|
const Sprite* sprite,
|
||||||
frame_t fromFrame,
|
frame_t fromFrame,
|
||||||
frame_t toFrame,
|
frame_t toFrame,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user