#pragma once #ifndef TROPCM_INCLUDED #define TROPCM_INCLUDED #include "trop.h" //#include "trastercm.h" //#include "tpalette.h" //#include "ttile.h" #include "ttoonzimage.h" #include #undef DVAPI #undef DVVAR #ifdef TROP_EXPORTS #define DVAPI DV_EXPORT_API #define DVVAR DV_EXPORT_VAR #else #define DVAPI DV_IMPORT_API #define DVVAR DV_IMPORT_VAR #endif class TTile; class TLevelP; class TToonzImageP; namespace TRop { DVAPI void convert(const TRaster32P &rasOut, const TRasterCM32P &rasIn, const TPaletteP palette, bool transparencyCheck = false); DVAPI void convert( const TRaster32P &rasOut, const TRasterCM32P &rasIn, TPaletteP palette, const TRect &theClipRect, // il rect su cui e' applicata la conversione bool transparencyCheck = false, bool applyFx = false); DVAPI void convert(const TTile &dst, const TTile &src, const TPaletteP plt, bool transparencyCheck, bool applyFxs); // matchlinePrevalence ==0->always ink down; matchlinePrevalence == 100 always // ink up; DVAPI void applyMatchLines(TRasterCM32P rasOut, const TRasterCM32P &rasUp, const TPaletteP &pltOut, const TPaletteP &matchPlt, int inkIndex, int matchlinePrevalence, std::map &usedInks); DVAPI void mergeCmapped(TRasterCM32P rasOut, const TRasterCM32P &rasUp, const TPaletteP &pltOut, int matchlinePrevalence, std::map &usedColors); DVAPI void overlayCmapped(TRasterCM32P rasOut, const TRasterCM32P &rasUp, const TPaletteP &pltOut, const TPaletteP &upPlt, std::map &usedColors); // DVAPI void applyMatchline(const vector& matchingLevels, int // inkIndex, int matchlinePrevalence); // DVAPI void deleteMatchline(const vector& level, const // vector& inkIndexes); // DVAPI void eraseInks(TRasterCM32P ras, vector& inkIds, bool // keepInks=false); DVAPI void eraseColors(TRasterCM32P ras, std::vector *colorIds, bool eraseInks, bool noGap = false); // colorsId==0 ->erase ALL // DVAPI void eraseColors(TRasterCM32P ras, vector& colorIds, bool // eraseInks, bool keepColor); DVAPI void eraseStyleIds(TToonzImage *image, const std::vector styleIds); DVAPI void resample(const TRasterP &out, const TRasterCM32P &in, const TPaletteP palette, const TAffine &aff, ResampleFilterType filterType = Triangle, double blur = 1.); DVAPI void convolve_3_i(TRasterP rout, TRasterCM32P rin, const TPaletteP &palette, int dx, int dy, double conv[]); DVAPI void convolve_i(TRasterP rout, TRasterCM32P rin, const TPaletteP &palette, int dx, int dy, double conv[], int radius); DVAPI void fracmove(TRasterP rout, TRasterCM32P rin, const TPaletteP &palette, double dx, double dy); DVAPI void zoomOutCm32Rgbm(const TRasterCM32P &rin, TRaster32P &rout, const TPalette &plt, int x1, int y1, int x2, int y2, int newx, int newy, int absZoomLevel); // these function create a small raster in rout shrinking rin, typically to make // an icon. the shrink method preserves pixels: even a single isolated pixel // is kept in the shrinked image. // shrinking is done without clipping original image and preserving aspect // ratio (no stretch!): therefore, horizontal or vertical transparent stripes on // borders are added when needed. // warning: rout width must be <= rin width; same for height. // DVAPI void makeIcon(TRaster32P& rout, const TRasterCM32P& rin, const // TPaletteP& palette, bool onBlackBg); DVAPI void makeIcon(TRasterCM32P &rout, const TRasterCM32P &rin); DVAPI void expandPaint(const TRasterCM32P &rasCM); } // namespace TRop #endif