2021-09-12 21:54:38 +02:00

499 lines
22 KiB
C++

// Borland C++ Builder
// Copyright (c) 1995, 1998 by Borland International
// All rights reserved
// (DO NOT EDIT: machine generated header) 'mwajpeg.pas' rev: 3.00
#ifndef mwajpegHPP
#define mwajpegHPP
#include <ExtCtrls.hpp>
#include <Graphics.hpp>
#include <Windows.hpp>
#include <Classes.hpp>
#include <jpeglib.hpp>
#include <SysInit.hpp>
#include <System.hpp>
//-- user supplied -----------------------------------------------------------
namespace Mwajpeg
{
//-- type declarations -------------------------------------------------------
typedef void __fastcall (__closure *TWarningEvent)(const System::AnsiString warning_message);
class DELPHICLASS TJPEGBase;
class PASCALIMPLEMENTATION TJPEGBase : public Classes::TComponent
{
typedef Classes::TComponent inherited;
private:
Jpeglib::jpeg_common_struct *JPEGObject;
bool FInAbort;
bool FInProgress;
bool FAbortRequested;
Classes::TNotifyEvent FOnProgressReport;
TWarningEvent FOnWarning;
int __fastcall GetWarnings(void);
int __fastcall GetTraceLevel(void);
int __fastcall GetPercentDone(void);
void __fastcall SetTraceLevel(int value);
virtual void __fastcall CreateJPEGObject(Jpeglib::jpeg_error_mgr_ptr err) = 0;
protected:
virtual void __fastcall Error(void);
virtual void __fastcall Warning(int msg_level);
virtual void __fastcall DoProgress(void);
int __fastcall Round4(int i);
public:
__fastcall virtual TJPEGBase(Classes::TComponent* AOwner);
__fastcall virtual ~TJPEGBase(void);
virtual void __fastcall Abort(void);
__property int Warnings = {read=GetWarnings, nodefault};
__property int Trace_Level = {read=GetTraceLevel, write=SetTraceLevel, nodefault};
__property int PercentDone = {read=GetPercentDone, nodefault};
__property Classes::TNotifyEvent OnProgressReport = {read=FOnProgressReport, write=FOnProgressReport
};
__property TWarningEvent OnWarning = {read=FOnWarning, write=FOnWarning};
};
enum TBitmapResolution { bmDefault, bm16Colour, bm256Colour, bm24bit };
typedef int TImageSize;
class DELPHICLASS TJPEGCompressor;
class PASCALIMPLEMENTATION TJPEGCompressor : public Mwajpeg::TJPEGBase
{
typedef Mwajpeg::TJPEGBase inherited;
private:
System::AnsiString FComment;
bool FProgressiveJPEG;
bool FWriteAllTables;
int FQuality;
bool FGrayscaleOutput;
Classes::TNotifyEvent FOnWriteMarkers;
Jpeglib::JOCTET_PTR __fastcall GetNextOut(void);
int __fastcall GetFreeIn(void);
void __fastcall SetNextOut(Jpeglib::JOCTET_PTR value);
void __fastcall SetFreeIn(int value);
void __fastcall SetQuality(int Value);
virtual void __fastcall CreateJPEGObject(Jpeglib::jpeg_error_mgr_ptr err);
int __fastcall Getcinfoinput_components(void);
Cardinal __fastcall Getcinfoimage_width(void);
double __fastcall Getcinfoinput_gamma(void);
int __fastcall Getcinfodata_precision(void);
Jpeglib::J_COLOR_SPACE __fastcall Getcinfojpeg_color_space(void);
Jpeglib::J_DCT_METHOD __fastcall Getcinfodct_method(void);
bool __fastcall Getcinfooptimize_coding(void);
Cardinal __fastcall Getcinforestart_interval(void);
int __fastcall Getcinforestart_in_rows(void);
int __fastcall Getcinfosmoothing_factor(void);
bool __fastcall Getcinfowrite_JFIF_header(void);
Byte __fastcall Getcinfodensity_unit(void);
Word __fastcall GetcinfoX_density(void);
Word __fastcall GetcinfoY_Density(void);
bool __fastcall Getcinfowrite_Adobe_marker(void);
Cardinal __fastcall Getcinfoimage_height(void);
void __fastcall Setcinfoinput_components(int Value);
void __fastcall Setcinfoimage_width(Cardinal Value);
void __fastcall Setcinfoinput_gamma(double Value);
void __fastcall Setcinfodata_precision(int Value);
void __fastcall Setcinfojpeg_color_space(Jpeglib::J_COLOR_SPACE Value);
void __fastcall Setcinfodct_method(Jpeglib::J_DCT_METHOD Value);
void __fastcall Setcinfooptimize_coding(bool Value);
void __fastcall Setcinforestart_interval(Cardinal Value);
void __fastcall Setcinforestart_in_rows(int Value);
void __fastcall Setcinfosmoothing_factor(int Value);
void __fastcall Setcinfowrite_JFIF_header(bool Value);
void __fastcall Setcinfodensity_unit(Byte Value);
void __fastcall SetcinfoX_density(Word Value);
void __fastcall SetcinfoY_Density(Word Value);
void __fastcall Setcinfowrite_Adobe_marker(bool Value);
void __fastcall Setcinfoimage_height(Cardinal Value);
protected:
Jpeglib::jpeg_compress_struct cinfo;
virtual void __fastcall InitDestination(void) = 0;
virtual bool __fastcall EmptyOutputBuffer(void) = 0;
virtual void __fastcall TermDestination(void) = 0;
void __fastcall SetColorSpace(Jpeglib::J_COLOR_SPACE value);
void __fastcall Bitmap2DIB(Graphics::TBitmap* Bitmap, TBitmapResolution Resolution, void *BitMapInfo
, void *bits);
void __fastcall GetBitmapInfoHeader(HBITMAP Bitmap, TBitmapResolution Resolution, tagBITMAPINFOHEADER
&BitmapInfoHeader);
void __fastcall GetDIBSizes(HBITMAP Bitmap, TBitmapResolution Resolution, int &InfoHeaderSize, int
&ImageSize);
void __fastcall WriteDIBitmap(const tagBITMAPINFO &BitmapInfo, char * bits);
void __fastcall WriteBitmap(Graphics::TBitmap* bitmap);
void __fastcall WriteStretchedBitmap(Graphics::TBitmap* bitmap, int width, int height);
void __fastcall WriteMetaFile(Graphics::TMetafile* metafile, int width, int height);
__property Jpeglib::JOCTET_PTR next_out = {read=GetNextOut, write=SetNextOut};
__property int free_in = {read=GetFreeIn, write=SetFreeIn, nodefault};
__property int InputComponents = {read=Getcinfoinput_components, write=Setcinfoinput_components, nodefault
};
__property Cardinal ImageWidth = {read=Getcinfoimage_width, write=Setcinfoimage_width, nodefault};
__property Cardinal ImageHeight = {read=Getcinfoimage_height, write=Setcinfoimage_height, nodefault
};
public:
__fastcall virtual TJPEGCompressor(Classes::TComponent* AOwner);
__fastcall virtual ~TJPEGCompressor(void);
void __fastcall AddQuantTable(int which_tbl, const Jpeglib::uint_ptr basic_table, int scale_factor,
bool force_baseline);
void __fastcall WriteMarker(int Marker, const void *buf, int Count);
__property bool GrayscaleOutput = {read=FGrayscaleOutput, write=FGrayscaleOutput, nodefault};
__property System::AnsiString Comment = {read=FComment, write=FComment};
__property int Quality = {read=FQuality, write=SetQuality, default=75};
__property bool ProgressiveJPEG = {read=FProgressiveJPEG, write=FProgressiveJPEG, nodefault};
__property double InputGamma = {read=Getcinfoinput_gamma, write=Setcinfoinput_gamma};
__property int DataPrecision = {read=Getcinfodata_precision, write=Setcinfodata_precision, nodefault
};
__property Jpeglib::J_COLOR_SPACE OutputColorSpace = {read=Getcinfojpeg_color_space, write=Setcinfojpeg_color_space
, nodefault};
__property Jpeglib::J_DCT_METHOD DCTMethod = {read=Getcinfodct_method, write=Setcinfodct_method, nodefault
};
__property bool OptimizeCoding = {read=Getcinfooptimize_coding, write=Setcinfooptimize_coding, nodefault
};
__property Cardinal RestartInterval = {read=Getcinforestart_interval, write=Setcinforestart_interval
, nodefault};
__property int RestartInRows = {read=Getcinforestart_in_rows, write=Setcinforestart_in_rows, nodefault
};
__property int SmoothingFactor = {read=Getcinfosmoothing_factor, write=Setcinfosmoothing_factor, nodefault
};
__property bool WriteJFIFHeader = {read=Getcinfowrite_JFIF_header, write=Setcinfowrite_JFIF_header,
nodefault};
__property Byte DensityUnit = {read=Getcinfodensity_unit, write=Setcinfodensity_unit, nodefault};
__property Word X_Density = {read=GetcinfoX_density, write=SetcinfoX_density, nodefault};
__property Word Y_Density = {read=GetcinfoY_Density, write=SetcinfoY_Density, nodefault};
__property bool WriteAdobeMarker = {read=Getcinfowrite_Adobe_marker, write=Setcinfowrite_Adobe_marker
, nodefault};
__property bool WriteAllTables = {read=FWriteAllTables, write=FWriteAllTables, default=1};
__property Classes::TNotifyEvent OnWriteMarkers = {read=FOnWriteMarkers, write=FOnWriteMarkers};
};
typedef void __fastcall (__closure *TJPEGCommentEvent)(TJPEGBase* sender, char * comment);
typedef void __fastcall (__closure *TJPEGMarkerEvent)(TJPEGBase* sender, int Marker, bool &done);
enum TJPEGOutputType { jp24bit, jp8bit, jp4bit, jpGrayscale };
class DELPHICLASS TJPEGDecompressor;
class PASCALIMPLEMENTATION TJPEGDecompressor : public Mwajpeg::TJPEGBase
{
typedef Mwajpeg::TJPEGBase inherited;
private:
TJPEGCommentEvent FOnJPEGComment;
J_DCT_METHOD FDCT_METHOD;
bool FDoFancyUpSampling;
bool FDoBlockSmoothing;
bool FGrayScaleOutput;
bool FTwoPassQuantize;
J_DITHER_MODE FDitherMode;
int FColoursIn8bitMode;
TJPEGMarkerEvent FOnJPEGMarker;
virtual void __fastcall CreateJPEGObject(Jpeglib::jpeg_error_mgr_ptr err);
Jpeglib::JOCTET_PTR __fastcall GetNextInputByte(void);
int __fastcall GetBytesInBuffer(void);
void __fastcall SetNextInputByte(Jpeglib::JOCTET_PTR value);
void __fastcall SetBytesInBuffer(int value);
bool __fastcall HandleJPEGComment(void);
bool __fastcall HandleAPPMarker(void);
Jpeglib::J_COLOR_SPACE __fastcall Getcinfoout_color_space(void);
Cardinal __fastcall Getcinfoscale_num(void);
Cardinal __fastcall Getcinfoscale_denom(void);
double __fastcall Getcinfooutput_gamma(void);
bool __fastcall Getcinfoquantize_colors(void);
int __fastcall Getcinfodesired_number_of_colors(void);
Jpeglib::JSAMPARRAY __fastcall Getcinfocolormap(void);
int __fastcall Getcinfoactual_number_of_colors(void);
Cardinal __fastcall Getcinfoimage_width(void);
Cardinal __fastcall Getcinfoimage_height(void);
Jpeglib::J_COLOR_SPACE __fastcall Getcinfojpeg_color_space(void);
bool __fastcall Getcinfosaw_JFIF_marker(void);
Byte __fastcall Getcinfodensity_unit(void);
Word __fastcall GetcinfoX_density(void);
Word __fastcall GetcinfoY_density(void);
Byte __fastcall GetcinfoAdobe_transform(void);
bool __fastcall Getcinfoenable_1pass_quant(void);
bool __fastcall Getcinfoenable_external_quant(void);
bool __fastcall Getcinfoenable_2pass_quant(void);
Cardinal __fastcall Getcinfooutput_height(void);
Cardinal __fastcall Getcinfooutput_width(void);
void __fastcall Setcinfoout_color_space(Jpeglib::J_COLOR_SPACE Value);
void __fastcall Setcinfoscale_num(Cardinal Value);
void __fastcall Setcinfoscale_denom(Cardinal Value);
void __fastcall Setcinfooutput_gamma(double Value);
void __fastcall Setcinfoquantize_colors(bool Value);
void __fastcall Setcinfodesired_number_of_colors(int Value);
void __fastcall Setcinfocolormap(Jpeglib::JSAMPARRAY Value);
void __fastcall Setcinfoactual_number_of_colors(int Value);
void __fastcall Setcinfoimage_width(Cardinal Value);
void __fastcall Setcinfoimage_height(Cardinal Value);
void __fastcall Setcinfojpeg_color_space(Jpeglib::J_COLOR_SPACE Value);
void __fastcall Setcinfosaw_JFIF_marker(bool Value);
void __fastcall Setcinfodensity_unit(Byte Value);
void __fastcall SetcinfoX_density(Word Value);
void __fastcall SetcinfoY_density(Word Value);
void __fastcall SetcinfoAdobe_transform(Byte Value);
void __fastcall Setcinfoenable_1pass_quant(bool Value);
void __fastcall Setcinfoenable_external_quant(bool Value);
void __fastcall Setcinfoenable_2pass_quant(bool Value);
void __fastcall Setcinfooutput_height(Cardinal Value);
void __fastcall Setcinfooutput_width(Cardinal Value);
protected:
Jpeglib::jpeg_decompress_struct cinfo;
virtual void __fastcall InitSource(void) = 0;
virtual bool __fastcall FillInputBuffer(void) = 0;
virtual void __fastcall SkipInputBytes(int num_bytes) = 0;
virtual bool __fastcall ResyncToRestart(int desired) = 0;
virtual void __fastcall TermSource(void) = 0;
virtual bool __fastcall DoJPEGComment(char * comment);
void __fastcall ReadDIBitmap(tagBITMAPINFO &BitMapInfo, TJPEGOutputType OutputType, void * bits);
Graphics::TBitmap* __fastcall ReadBitmap(void);
void __fastcall ReadWinBitmap(HBITMAP &Bitmap, HPALETTE &Palette);
virtual void __fastcall ReadHeader(void);
__property Jpeglib::JOCTET_PTR NextInputByte = {read=GetNextInputByte, write=SetNextInputByte};
__property int BytesInBuffer = {read=GetBytesInBuffer, write=SetBytesInBuffer, nodefault};
__property Jpeglib::J_COLOR_SPACE OutputColorSpace = {read=Getcinfoout_color_space, write=Setcinfoout_color_space
, nodefault};
__property Cardinal ScaleNum = {read=Getcinfoscale_num, write=Setcinfoscale_num, nodefault};
__property Cardinal ScaleDenom = {read=Getcinfoscale_denom, write=Setcinfoscale_denom, nodefault};
__property double OutputGamma = {read=Getcinfooutput_gamma, write=Setcinfooutput_gamma};
__property bool QuantizeColors = {read=Getcinfoquantize_colors, write=Setcinfoquantize_colors, nodefault
};
__property int NumColorsDesired = {read=Getcinfodesired_number_of_colors, write=Setcinfodesired_number_of_colors
, nodefault};
__property Jpeglib::JSAMPARRAY ColorMap = {read=Getcinfocolormap, write=Setcinfocolormap};
__property int ActualColorsInMap = {read=Getcinfoactual_number_of_colors, write=Setcinfoactual_number_of_colors
, nodefault};
public:
__fastcall virtual TJPEGDecompressor(Classes::TComponent* AOwner);
__fastcall virtual ~TJPEGDecompressor(void);
int __fastcall GetBitmapInfoSize(TJPEGOutputType OutputType);
int __fastcall GetDIBitsSize(TJPEGOutputType OutputType);
Byte __fastcall GetByte(void);
__property TJPEGCommentEvent OnJPEGComment = {read=FOnJPEGComment, write=FOnJPEGComment};
__property TJPEGMarkerEvent OnJPEGMarker = {read=FOnJPEGMarker, write=FOnJPEGMarker};
__property bool GrayScaleOutput = {read=FGrayScaleOutput, write=FGrayScaleOutput, nodefault};
__property Cardinal Width = {read=Getcinfoimage_width, write=Setcinfoimage_width, nodefault};
__property Cardinal Height = {read=Getcinfoimage_height, write=Setcinfoimage_height, nodefault};
__property Jpeglib::J_COLOR_SPACE ColorSpace = {read=Getcinfojpeg_color_space, write=Setcinfojpeg_color_space
, nodefault};
__property bool JFIFMarkerPresent = {read=Getcinfosaw_JFIF_marker, write=Setcinfosaw_JFIF_marker, nodefault
};
__property Byte DensityUnit = {read=Getcinfodensity_unit, write=Setcinfodensity_unit, nodefault};
__property Word X_Density = {read=GetcinfoX_density, write=SetcinfoX_density, nodefault};
__property Word Y_Density = {read=GetcinfoY_density, write=SetcinfoY_density, nodefault};
__property Byte AdobeTransform = {read=GetcinfoAdobe_transform, write=SetcinfoAdobe_transform, nodefault
};
__property bool TwoPassQuantize = {read=FTwoPassQuantize, write=FTwoPassQuantize, default=1};
__property int ColoursIn8bitMode = {read=FColoursIn8bitMode, write=FColoursIn8bitMode, default=64};
__property Jpeglib::J_DITHER_MODE DitherMode = {read=FDitherMode, write=FDitherMode, default=2};
__property Jpeglib::J_DCT_METHOD DCTMethod = {read=FDCT_METHOD, write=FDCT_METHOD, default=0};
__property bool DoFancyUpSampling = {read=FDoFancyUpSampling, write=FDoFancyUpSampling, default=1};
__property bool DoBlockSmoothing = {read=FDoBlockSmoothing, write=FDoBlockSmoothing, default=1};
__property bool Enable1PassQuant = {read=Getcinfoenable_1pass_quant, write=Setcinfoenable_1pass_quant
, nodefault};
__property bool EnableExternalQuant = {read=Getcinfoenable_external_quant, write=Setcinfoenable_external_quant
, nodefault};
__property bool Enable2PassQuant = {read=Getcinfoenable_2pass_quant, write=Setcinfoenable_2pass_quant
, nodefault};
__property Cardinal OutputHeight = {read=Getcinfooutput_height, write=Setcinfooutput_height, nodefault
};
__property Cardinal OutputWidth = {read=Getcinfooutput_width, write=Setcinfooutput_width, nodefault
};
};
class DELPHICLASS TJPEGStreamCompressor;
class PASCALIMPLEMENTATION TJPEGStreamCompressor : public Mwajpeg::TJPEGCompressor
{
typedef Mwajpeg::TJPEGCompressor inherited;
private:
Classes::TStream* FStream;
void *FBuffer;
int FBufSize;
void __fastcall SetBufSize(int Value);
protected:
virtual void __fastcall InitDestination(void);
virtual bool __fastcall EmptyOutputBuffer(void);
virtual void __fastcall TermDestination(void);
void __fastcall OpenStream(Classes::TStream* Stream);
void __fastcall CloseStream(void);
public:
__fastcall virtual TJPEGStreamCompressor(Classes::TComponent* AOwner);
__fastcall virtual ~TJPEGStreamCompressor(void);
void __fastcall SavePictureToStream(Graphics::TPicture* Picture, Classes::TStream* Stream);
void __fastcall SaveStretchedPictureToStream(Graphics::TPicture* Picture, int width, int height, Classes::TStream*
Stream);
void __fastcall SaveBitMapToStream(Graphics::TBitmap* bitmap, Classes::TStream* Stream);
void __fastcall SaveStretchedBitMapToStream(Graphics::TBitmap* bitmap, int width, int height, Classes::TStream*
Stream);
void __fastcall SaveDIBitmapToStream(Classes::TStream* Stream, const tagBITMAPINFO &BitmapInfo, char *
bits);
void __fastcall SaveMetaFileToStream(Graphics::TMetafile* metafile, Classes::TStream* Stream, int width
, int height);
__property int BufSize = {read=FBufSize, write=SetBufSize, default=4096};
};
class DELPHICLASS TJPEGStreamDecompressor;
class PASCALIMPLEMENTATION TJPEGStreamDecompressor : public Mwajpeg::TJPEGDecompressor
{
typedef Mwajpeg::TJPEGDecompressor inherited;
private:
Classes::TStream* FStream;
char *FBuffer;
int FBufSize;
protected:
virtual void __fastcall InitSource(void);
virtual bool __fastcall FillInputBuffer(void);
virtual void __fastcall SkipInputBytes(int num_bytes);
virtual bool __fastcall ResyncToRestart(int desired);
void __fastcall SetBufSize(int Value);
virtual void __fastcall TermSource(void);
public:
void __fastcall OpenStream(Classes::TStream* Stream);
void __fastcall CloseStream(void);
__fastcall virtual TJPEGStreamDecompressor(Classes::TComponent* AOwner);
__fastcall virtual ~TJPEGStreamDecompressor(void);
void __fastcall ConvertToDIB(Classes::TStream* Source, Classes::TStream* Destination, TJPEGOutputType
OutputType);
void __fastcall LoadPictureFromStream(Graphics::TPicture* Picture, Classes::TStream* Stream);
void __fastcall LoadPictureFromResource(Graphics::TPicture* Picture, int Instance, const System::AnsiString
ResName);
void __fastcall LoadPictureFromResID(Graphics::TPicture* Picture, int Instance, int ResID);
Graphics::TBitmap* __fastcall ReadBitMapFromStream(Classes::TStream* Stream);
void __fastcall ReadDIBitmapFromStream(Classes::TStream* Stream, tagBITMAPINFO &BitMapInfo, TJPEGOutputType
OutputType, int &bits);
__property int BufSize = {read=FBufSize, write=SetBufSize, default=4096};
};
class DELPHICLASS TJPEGFileDecompressor;
class PASCALIMPLEMENTATION TJPEGFileDecompressor : public Mwajpeg::TJPEGStreamDecompressor
{
typedef Mwajpeg::TJPEGStreamDecompressor inherited;
public:
void __fastcall LoadPictureFromFile(Graphics::TPicture* Picture, const System::AnsiString FileName)
;
__published:
__property Warnings ;
__property Trace_Level ;
__property PercentDone ;
__property ColoursIn8bitMode ;
__property GrayScaleOutput ;
__property OnJPEGComment ;
__property OnJPEGMarker ;
__property TwoPassQuantize ;
__property DitherMode ;
__property DCTMethod ;
__property DoFancyUpSampling ;
__property DoBlockSmoothing ;
__property OnProgressReport ;
__property OnWarning ;
public:
/* TJPEGStreamDecompressor.create */ __fastcall virtual TJPEGFileDecompressor(Classes::TComponent*
AOwner) : Mwajpeg::TJPEGStreamDecompressor(AOwner) { }
/* TJPEGStreamDecompressor.Destroy */ __fastcall virtual ~TJPEGFileDecompressor(void) { }
};
class DELPHICLASS TJPEGFileCompressor;
class PASCALIMPLEMENTATION TJPEGFileCompressor : public Mwajpeg::TJPEGStreamCompressor
{
typedef Mwajpeg::TJPEGStreamCompressor inherited;
public:
void __fastcall SavePictureToFile(Graphics::TPicture* Picture, const System::AnsiString FileName);
void __fastcall SaveStretchedPictureToFile(Graphics::TPicture* Picture, int width, int height, const
System::AnsiString FileName);
void __fastcall SaveBitmapToFile(Graphics::TBitmap* bitmap, const System::AnsiString FileName);
void __fastcall SaveStretchedBitmapToFile(Graphics::TBitmap* bitmap, int width, int height, const System::AnsiString
FileName);
void __fastcall SaveMetafileToFile(Graphics::TMetafile* metafile, int width, int height, const System::AnsiString
FileName);
__published:
__property Warnings ;
__property Trace_Level ;
__property PercentDone ;
__property GrayscaleOutput ;
__property Comment ;
__property Quality ;
__property InputGamma ;
__property ProgressiveJPEG ;
__property DCTMethod ;
__property OptimizeCoding ;
__property RestartInterval ;
__property RestartInRows ;
__property SmoothingFactor ;
__property WriteJFIFHeader ;
__property DensityUnit ;
__property X_Density ;
__property Y_Density ;
__property WriteAllTables ;
__property OnProgressReport ;
__property OnWriteMarkers ;
__property OnWarning ;
public:
/* TJPEGStreamCompressor.create */ __fastcall virtual TJPEGFileCompressor(Classes::TComponent* AOwner
) : Mwajpeg::TJPEGStreamCompressor(AOwner) { }
/* TJPEGStreamCompressor.Destroy */ __fastcall virtual ~TJPEGFileCompressor(void) { }
};
class DELPHICLASS TJPEGBitmap;
class PASCALIMPLEMENTATION TJPEGBitmap : public Graphics::TBitmap
{
typedef Graphics::TBitmap inherited;
private:
bool FSaveAsBitmap;
TJPEGStreamDecompressor* FDecompressor;
TJPEGStreamCompressor* FCompressor;
Classes::TNotifyEvent FProgressEvent;
void __fastcall HandleDecompressOnProgress(System::TObject* Sender);
void __fastcall HandleCompressOnProgress(System::TObject* Sender);
public:
virtual void __fastcall LoadFromStream(Classes::TStream* Stream);
virtual void __fastcall SaveToStream(Classes::TStream* Stream);
virtual void __fastcall SaveToFile(const System::AnsiString FileName);
public:
/* TBitmap.Create */ __fastcall virtual TJPEGBitmap(void) : Graphics::TBitmap() { }
/* TBitmap.Destroy */ __fastcall virtual ~TJPEGBitmap(void) { }
};
//-- var, const, procedure ---------------------------------------------------
#define DefaultBufSize (Word)(4096)
#define DefaultQuality (Byte)(75)
#define sJPEGResourceType "JPEG"
#define DefaultColoursIn8bitMode (Byte)(64)
extern PACKAGE bool UseIsIllegal;
extern PACKAGE Graphics::TBitmap* __fastcall ReSizeBitmap(Graphics::TBitmap* bitmap, int width, int
height);
extern PACKAGE Graphics::TBitmap* __fastcall CropBitmap(Graphics::TBitmap* bitmap, int width, int height
, const Windows::TRect &Clip);
extern PACKAGE Graphics::TBitmap* __fastcall MetaToBitmap(Graphics::TMetafile* metafile, int Width,
int Height);
} /* namespace Mwajpeg */
#if !defined(NO_IMPLICIT_NAMESPACE_USE)
using namespace Mwajpeg;
#endif
//-- end unit ----------------------------------------------------------------
#endif // mwajpeg