00001 #ifndef __AIRasterize__
00002 #define __AIRasterize__
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #ifndef __AITypes__
00031 #include "AITypes.h"
00032 #endif
00033
00034 #ifndef __AIArt__
00035 #include "AIArt.h"
00036 #endif
00037
00038 #ifndef __AIArtSet__
00039 #include "AIArtSet.h"
00040 #endif
00041
00042 #ifndef __AIColorConversion__
00043 #include "AIColorConversion.h"
00044 #endif
00045
00046 #ifndef __AIFixedMath__
00047 #include "AIFixedMath.h"
00048 #endif
00049
00050 #ifndef __AIRaster__
00051 #include "AIRaster.h"
00052 #endif
00053
00054
00055 #include "AIHeaderBegin.h"
00056
00059
00060
00061
00062
00063
00064
00065 #define kAIRasterizeSuite "AI Rasterize Suite"
00066 #define kAIRasterizeSuiteVersion12 AIAPI_VERSION(12)
00067
00068
00069 #define kAIRasterizeSuiteVersion kAIRasterizeSuiteVersion12
00070 #define kAIRasterizeVersion kAIRasterizeSuiteVersion
00071
00073 #define kAIRasterizeDefaultAntialiasing 2
00074
00075
00081 #define kAIAutoRasterSettingsKey "AI Auto Rasterize"
00082
00085 #define kDefaultRasterizeType "colr"
00086
00089 #define kDefaultRasterizeDPI "dpi."
00090
00093 #define kDefaultRasterizeAlias "alis"
00094
00097 #define kDefaultRasterizePreserveSpot "spot"
00098
00101 #define kDefaultRasterizeMask "mask"
00102
00105 #define kDefaultRasterizePadding "padd"
00106
00107
00111 #define kRasterizePrefPrefix "Rasterize/Defaults"
00112
00113
00119 #define kAIRasterizeTooWideErr 'R2Wd'
00120
00121
00122
00123
00124
00125
00126
00127
00130 enum AIRasterizeType {
00132 kRasterizeRGB = 0,
00134 kRasterizeCMYK,
00136 kRasterizeGrayscale,
00138 kRasterizeBitmap,
00140 kRasterizeARGB,
00142 kRasterizeACMYK,
00144 kRasterizeAGrayscale,
00146 kRasterizeABitmap,
00148 kRasterizeSeparation,
00150 kRasterizeASeparation,
00152 kRasterizeNChannel,
00154 kRasterizeANChannel
00155 };
00156
00159 enum AIRasterizeOptions {
00161 kRasterizeOptionsNone = 0,
00164 kRasterizeOptionsDoLayers = 1<<0,
00166 kRasterizeOptionsAgainstBlack = 1<<1,
00168 kRasterizeOptionsDontAlign = 1<<2,
00170 kRasterizeOptionsOutlineText = 1<<3,
00172 kRasterizeOptionsHinted = 1<<4,
00174 kRasterizeOptionsUseEffectsRes = 1<<5,
00177 kRasterizeOptionsUseMinTiles = 1<<6,
00179 kRasterizeOptionsCMYKWhiteMatting = 1<<7,
00181 kRasterizeOptionsSpotColorRasterOk = 1<<8,
00183 kRasterizeOptionsNChannelOk = 1<<9,
00185 kFillBlackAndIgnoreTransparancy = 1<<10
00186 };
00187
00191 struct AIRasterizeSettings {
00192 AIRasterizeSettings () :
00193 type(kRasterizeGrayscale),
00194 resolution(0),
00195 antialiasing(1),
00196 options(kRasterizeOptionsNone),
00197 ccoptions(AIColorConvertOptions::kDefault),
00198 preserveSpotColors(false)
00199 {
00200 }
00201 AIRasterizeSettings ( AIRasterizeType iType,
00202 AIReal iResolution,
00203 short iAntialiasing,
00204 AIRasterizeOptions iOptions,
00205 AIColorConvertOptions iCcoptions,
00206 AIBoolean iPreserveSpotColors) :
00207 type(iType),
00208 resolution(iResolution),
00209 antialiasing(iAntialiasing),
00210 options(iOptions),
00211 ccoptions(iCcoptions),
00212 preserveSpotColors(iPreserveSpotColors)
00213 {
00214 }
00215 AIRasterizeSettings (const AIRasterizeSettings& src) :
00216 type(src.type),
00217 resolution(src.resolution),
00218 antialiasing(src.antialiasing),
00219 options(src.options),
00220 ccoptions(src.ccoptions),
00221 preserveSpotColors(src.preserveSpotColors)
00222 {
00223 }
00224 AIRasterizeSettings& operator= (const AIRasterizeSettings& src)
00225 {
00226 type = src.type;
00227 resolution = src.resolution;
00228 antialiasing = src.antialiasing;
00229 options = src.options;
00230 ccoptions = src.ccoptions;
00231 preserveSpotColors = src.preserveSpotColors;
00232 return *this;
00233 }
00234
00236 AIRasterizeType type;
00238 AIReal resolution;
00241 short antialiasing;
00244 AIRasterizeOptions options;
00246 AIColorConvertOptions ccoptions;
00248 AIBoolean preserveSpotColors;
00249 };
00250
00252 enum AIResamplingType {
00254 kSubsample = 0,
00256 kDownsample,
00258 kBicubicDownsample
00259
00260 };
00261
00268 typedef AIAPI AIBoolean (*AIRasterizeProgressProc)(ai::int32 current, ai::int32 total);
00269
00270
00271
00272
00273
00274
00275
00276
00277
00289 typedef struct {
00290
00298 AIAPI AIErr (*ComputeArtBounds) ( AIArtSet artSet,
00299 AIRealRect *artBounds,
00300 AIBoolean honorCropBox );
00301
00315 AIAPI AIErr (*Rasterize) ( AIArtSet artSet,
00316 AIRasterizeSettings *settings,
00317 AIRealRect *artBounds,
00318 short paintOrder,
00319 AIArtHandle prepArt,
00320 AIArtHandle *raster,
00321 AIRasterizeProgressProc progressProc );
00322
00338 AIAPI AIErr (*CreateMask) ( AIArtSet artSet,
00339 short paintOrder,
00340 AIArtHandle rasterArt,
00341 AIArtHandle *maskGroup );
00342
00361 AIAPI AIErr (*RasterizeWithPadding) ( AIArtSet artSet,
00362 AIRasterizeSettings *settings,
00363 AIRealRect *artBounds,
00364 short paintOrder,
00365 AIArtHandle prepArt,
00366 AIArtHandle *raster,
00367 AIRasterizeProgressProc progressProc,
00368 AIReal padding );
00369
00384 AIAPI AIErr (*RasterizeDocument) ( AIRasterizeSettings *settings,
00385 short paintOrder,
00386 AIArtHandle prepArt,
00387 AIArtHandle *raster,
00388 AIRasterizeProgressProc progressProc,
00389 ai::int32 options );
00390
00402 AIAPI AIErr (*ImageResample) (AIArtHandle rasterArt,
00403 const AIResamplingType flag,
00404 const AIReal resolution,
00405 const short paintOrder,
00406 AIArtHandle prepArt,
00407 AIArtHandle *newRasterArt);
00408
00415 AIAPI AIErr (*CheckSpotColorPreservation) (AIArtSet artSet,
00416 AIBoolean *canPreserveSpotColor);
00417
00418 AIAPI void (*SnapRasterRectToPixelGrid)(AIRealRect &rect, AIReal ppi);
00419
00420
00440 AIAPI AIErr (*RasterizeWithPaddingAndBGColor) ( AIArtSet artSet,
00441 AIRasterizeSettings *settings,
00442 AIRealRect *artBounds,
00443 short paintOrder,
00444 AIArtHandle prepArt,
00445 AIArtHandle *raster,
00446 AIRasterizeProgressProc progressProc,
00447 AIReal padding,
00448 AIColor* bgColor);
00449
00450
00451 } AIRasterizeSuite;
00452
00453 #include "AIHeaderEnd.h"
00454
00455
00456 #endif