7 #include "dcmtk/ofstd/ofvector.h"
8 #include "dcmtk/ofstd/ofbmanip.h"
19 enum JPEGLS_ColorXForm
30 COLORXFORM_RGB_AS_YUV_LOSSY,
39 friend class JpegMarkerSegment;
40 friend class JpegImageDataSegment;
46 void Init(
Size size, LONG bitsPerSample, LONG ccomp);
47 void AddScan(
const void* compareData,
const JlsParameters* pparams);
49 void AddColorTransform(
int i);
50 size_t GetBytesWritten()
51 {
return _cbyteOffset; }
54 {
return _cbyteLength - _cbyteOffset; }
56 size_t Write(BYTE* pdata,
size_t cbyteLength);
58 void EnableCompare(
bool bCompare)
59 { _bCompare = bCompare; }
62 {
return _pdata + _cbyteOffset; }
64 void WriteByte(BYTE val)
66 ASSERT(!_bCompare || _pdata[_cbyteOffset] == val);
68 _pdata[_cbyteOffset++] = val;
73 for (
size_t i = 0; i < rgbyte.
size(); ++i)
79 void WriteWord(USHORT val)
81 WriteByte(BYTE(val / 0x100));
82 WriteByte(BYTE(val % 0x100));
86 void Seek(
size_t byteCount)
87 { _cbyteOffset += byteCount; }
123 size_t GetBytesRead()
124 {
return _cbyteOffset; }
130 {
return _info.custom; }
132 void Read(
void* pvoid, LONG cbyteAvailable);
135 void EnableCompare(
bool bCompare)
136 { _bCompare = bCompare; }
140 void SetRect(
JlsRect rect) { _rect = rect; }
143 void ReadPixels(
void* pvoid, LONG cbyteAvailable);
144 void ReadScan(
void*);
145 void ReadStartOfScan();
146 void ReadPresetParameters();
148 void ReadStartOfFrame();
156 void ReadColorSpace();
157 void ReadColorXForm();