|
Shinya Kitaoka |
810553 |
#pragma once
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
#ifndef CONVERT2FILLED_INCLUDED
|
|
Toshihiro Shimizu |
890ddd |
#define CONVERT2FILLED_INCLUDED
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
#include "tfilepath.h"
|
|
Toshihiro Shimizu |
890ddd |
#include "tlevel_io.h"
|
|
Toshihiro Shimizu |
890ddd |
#include "tpalette.h"
|
|
Toshihiro Shimizu |
890ddd |
#include "trasterimage.h"
|
|
Toshihiro Shimizu |
890ddd |
#include "ttoonzimage.h"
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
#undef DVAPI
|
|
Toshihiro Shimizu |
890ddd |
#undef DVVAR
|
|
Toshihiro Shimizu |
890ddd |
#ifdef TOONZLIB_EXPORTS
|
|
Toshihiro Shimizu |
890ddd |
#define DVAPI DV_EXPORT_API
|
|
Toshihiro Shimizu |
890ddd |
#define DVVAR DV_EXPORT_VAR
|
|
Toshihiro Shimizu |
890ddd |
#else
|
|
Toshihiro Shimizu |
890ddd |
#define DVAPI DV_IMPORT_API
|
|
Toshihiro Shimizu |
890ddd |
#define DVVAR DV_IMPORT_VAR
|
|
Toshihiro Shimizu |
890ddd |
#endif
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
class DVAPI Convert2Tlv {
|
|
Toshihiro Shimizu |
890ddd |
private:
|
|
Shinya Kitaoka |
120a6e |
TLevelP m_level1;
|
|
Shinya Kitaoka |
120a6e |
TLevel::Iterator m_it;
|
|
Shinya Kitaoka |
120a6e |
TLevelReaderP m_lr1;
|
|
Shinya Kitaoka |
120a6e |
TLevelReaderP m_lr2;
|
|
Shinya Kitaoka |
120a6e |
TLevelWriterP m_lw;
|
|
Shinya Kitaoka |
120a6e |
std::map<tpixel, int=""> m_colorMap;</tpixel,>
|
|
Shinya Kitaoka |
120a6e |
TDimension m_size;
|
|
Shinya Kitaoka |
120a6e |
int m_count;
|
|
Shinya Kitaoka |
120a6e |
int m_from, m_to;
|
|
Shinya Kitaoka |
120a6e |
TPalette *m_palette;
|
|
Shinya Kitaoka |
120a6e |
int m_colorTolerance;
|
|
Shinya Kitaoka |
120a6e |
int m_lastIndex, m_maxPaletteIndex;
|
|
Shinya Kitaoka |
120a6e |
int m_antialiasType;
|
|
Shinya Kitaoka |
120a6e |
int m_antialiasValue;
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
bool m_isUnpaintedFromNAA;
|
|
Shinya Kitaoka |
120a6e |
bool m_appendDefaultPalette;
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
void buildToonzRaster(TRasterCM32P &rout, const TRasterP &rin1,
|
|
Shinya Kitaoka |
120a6e |
const TRasterP &rin2);
|
|
Shinya Kitaoka |
120a6e |
void doFill(TRasterCM32P &rout, const TRaster32P &rin);
|
|
Shinya Kitaoka |
120a6e |
void buildInksFromGrayTones(TRasterCM32P &rout, const TRasterP &rin);
|
|
Shinya Kitaoka |
120a6e |
std::map<tpixel, int="">::const_iterator findNearestColor(const TPixel &color);</tpixel,>
|
|
Shinya Kitaoka |
120a6e |
void buildInks(TRasterCM32P &rout, const TRaster32P &rin);
|
|
Shinya Kitaoka |
120a6e |
TPalette *buildPalette();
|
|
Shinya Kitaoka |
120a6e |
void removeAntialias(TRasterCM32P &r);
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
void buildInksForNAAImage(TRasterCM32P &rout, const TRaster32P &rin);
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
public:
|
|
Shinya Kitaoka |
120a6e |
TFilePath m_levelIn1, m_levelIn2, m_levelOut, m_palettePath;
|
|
Shinya Kitaoka |
120a6e |
bool m_autoclose, m_premultiply;
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
// i livelli passati devono essere tif o png.
|
|
Shinya Kitaoka |
120a6e |
// se filepath2=TFilePath(), viene creata una tlv unpainted, altrimenti
|
|
Shinya Kitaoka |
120a6e |
// painted.
|
|
Shinya Kitaoka |
120a6e |
// nel secondo caso, i due livelli specificati (in qualsiasi ordine, la classe
|
|
Shinya Kitaoka |
120a6e |
// capisce da sola qual'e' l'unpainted e la painted)
|
|
Shinya Kitaoka |
120a6e |
// devono contenere la versione painted e quella unpainted della stessa
|
|
Shinya Kitaoka |
120a6e |
// sequenza di immagini
|
|
Shinya Kitaoka |
120a6e |
// la tlv e la tpl vengono salvate con il nome e il folder di filepath1.
|
|
Shinya Kitaoka |
120a6e |
Convert2Tlv(const TFilePath &filepath1, const TFilePath &filepath2,
|
|
Shinya Kitaoka |
120a6e |
const TFilePath &outFolder, const QString &outName, int from,
|
|
Shinya Kitaoka |
120a6e |
int to, bool doAutoclose, const TFilePath &palettePath,
|
|
Shinya Kitaoka |
120a6e |
int colorTolerance, int antialiasType, int antialiasValue,
|
|
Shinya Kitaoka |
120a6e |
bool isUnpaintedFromNAA, bool appendDefaultPalette);
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
bool init(std::string &errorMessage);
|
|
Shinya Kitaoka |
120a6e |
int getFramesToConvertCount();
|
|
Shinya Kitaoka |
120a6e |
bool abort();
|
|
Shinya Kitaoka |
120a6e |
bool convertNext(std::string &errorMessage);
|
|
Toshihiro Shimizu |
890ddd |
};
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
// gmt, 3/1/2013; making raster>toonzraster conversion available to scripts
|
|
Shinya Kitaoka |
120a6e |
// it seems too complex to modify Convert2Tlv, that refer to file levels instead
|
|
Shinya Kitaoka |
120a6e |
// of memory levels.
|
|
Toshihiro Shimizu |
890ddd |
// RasterToToonzRasterConverter uses the same algorithms (more or less)
|
|
Toshihiro Shimizu |
890ddd |
// TODO: refactor the two classes
|
|
Shinya Kitaoka |
120a6e |
// NOTE: you don't need to specify a palette (with
|
|
Shinya Kitaoka |
120a6e |
// RasterToToonzRasterConverter::setPalette()): in that case a suitable palette
|
|
Shinya Kitaoka |
120a6e |
// is generated
|
|
Shinya Kitaoka |
120a6e |
class DVAPI RasterToToonzRasterConverter {
|
|
Shinya Kitaoka |
120a6e |
TPaletteP m_palette;
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
public:
|
|
Shinya Kitaoka |
120a6e |
RasterToToonzRasterConverter();
|
|
Shinya Kitaoka |
120a6e |
~RasterToToonzRasterConverter();
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
void setPalette(const TPaletteP &palette);
|
|
Shinya Kitaoka |
120a6e |
const TPaletteP &getPalette() const { return m_palette; }
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
TRasterCM32P convert(const TRasterP &inputRaster);
|
|
Shinya Kitaoka |
120a6e |
TRasterCM32P convert(const TRasterP &inksInputRaster,
|
|
Shinya Kitaoka |
120a6e |
const TRasterP &paintInputRaster);
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
TToonzImageP convert(const TRasterImageP &ri);
|
|
Toshihiro Shimizu |
890ddd |
};
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
#endif
|