36 | | class FdoRasterDataModel: public FdoIDisposable[[BR]] |
37 | | {[[BR]] |
38 | | public:[[BR]] |
39 | | |
40 | | …[[BR]] |
41 | | …[[BR]] |
42 | | [[BR]] |
43 | | /// \brief[[BR]] |
44 | | /// Get the number of bits per pixel.[[BR]] |
45 | | /// [[BR]] |
46 | | /// \return[[BR]] |
47 | | /// Returns the number of bits for each pixel. For multi-channel[[BR]] |
48 | | /// data the bits per channel will be this value devided by the numer of[[BR]] |
49 | | /// channels. For example, RGB data has three channels, so if this[[BR]] |
50 | | /// method returns twelve, each channel is four bits.[[BR]] |
51 | | /// [[BR]] |
52 | | FDO_API virtual FdoInt32 GetBitsPerPixel ();[[BR]] |
53 | | |
54 | | /// \brief[[BR]] |
55 | | /// Set the number of bits per pixel.[[BR]] |
56 | | /// [[BR]] |
57 | | /// \param bpp [[BR]] |
58 | | /// The number of bits per pixel desired.[[BR]] |
59 | | /// Values of 1, 4, 8, 16, 24, 32, 48 and 64 bits per channel may[[BR]] |
60 | | /// be supported. Others values (i.e. indivisible by the number of channels)[[BR]] |
61 | | /// are likely to raise a FdoException.[[BR]] |
62 | | /// [[BR]] |
63 | | FDO_API virtual void SetBitsPerPixel (FdoInt32 bpp);[[BR]] |
64 | | …[[BR]] |
65 | | …[[BR]] |
66 | | [[BR]] |
67 | | };[[BR]] |
68 | | |
69 | | However, returning only the bits per pixel is not sufficient to quickly and efficiently process the raster stream. The user should also be made aware of the bits used per pixel. In certain circumstances, the raster image does not completely use all available bits and pads the extra bits in the raster stream with NULL values. Without knowing the bits used per pixel, the client has to spend processing cycles determining how many bits are used thus affecting the performance of their applications. |
70 | | |
71 | | This issue was identified by IKonus, a corporate user of the FDO API. |
72 | | |
73 | | == Proposed Solution == |
74 | | |
75 | | The FDO FdoRasterDataModel class will be extended to export the number of bits used per pixel. |
76 | | |
77 | | /// \brief[[BR]] |
78 | | /// The FdoRasterDataModel specifies the data type and organization[[BR]] |
79 | | /// of raster data retrieved and stored. Using this class and the image[[BR]] |
80 | | /// extents in width and length, the binary format of the image data returned[[BR]] |
81 | | /// by and accepted by the FdoIStreamReader class can be interpreted.[[BR]] |
82 | | class FdoRasterDataModel: public FdoIDisposable[[BR]] |
| 36 | class !FdoRasterDataModel: public !FdoIDisposable[[BR]] |
109 | | FDO_API virtual void SetBitsPerPixel (FdoInt32 bpp);[[BR]] |
| 63 | FDO_API virtual void !SetBitsPerPixel (!FdoInt32 bpp); |
| 64 | |
| 65 | …[[BR]] |
| 66 | …[[BR]] |
| 67 | |
| 68 | };[[BR]] |
| 69 | |
| 70 | However, returning only the bits per pixel is not sufficient to quickly and efficiently process the raster stream. The user should also be made aware of the bits used per pixel. In certain circumstances, the raster image does not completely use all available bits and pads the extra bits in the raster stream with NULL values. Without knowing the bits used per pixel, the client has to spend processing cycles determining how many bits are used thus affecting the performance of their applications. |
| 71 | |
| 72 | This issue was identified by IKonus, a corporate user of the FDO API. |
| 73 | |
| 74 | == Proposed Solution == |
| 75 | |
| 76 | The FDO !FdoRasterDataModel class will be extended to export the number of bits used per pixel. |
| 77 | |
| 78 | /// \brief[[BR]] |
| 79 | /// The !FdoRasterDataModel specifies the data type and organization[[BR]] |
| 80 | /// of raster data retrieved and stored. Using this class and the image[[BR]] |
| 81 | /// extents in width and length, the binary format of the image data returned[[BR]] |
| 82 | /// by and accepted by the FdoIStreamReader class can be interpreted.[[BR]] |
| 83 | class !FdoRasterDataModel: public !FdoIDisposable[[BR]] |
| 84 | {[[BR]] |
| 85 | public:[[BR]] |
| 86 | |
| 87 | …[[BR]] |
| 88 | …[[BR]] |
| 89 | |
| 90 | /// \brief[[BR]] |
| 91 | /// Get the number of bits per pixel.[[BR]] |
| 92 | /// [[BR]] |
| 93 | /// \return[[BR]] |
| 94 | /// Returns the number of bits for each pixel. For multi-channel[[BR]] |
| 95 | /// data the bits per channel will be this value devided by the numer of[[BR]] |
| 96 | /// channels. For example, RGB data has three channels, so if this[[BR]] |
| 97 | /// method returns twelve, each channel is four bits.[[BR]] |
| 98 | /// [[BR]] |
| 99 | FDO_API virtual !FdoInt32 !GetBitsPerPixel ();[[BR]] |
| 100 | |
| 101 | /// \brief[[BR]] |
| 102 | /// Set the number of bits per pixel.[[BR]] |
| 103 | /// [[BR]] |
| 104 | /// \param bpp [[BR]] |
| 105 | /// The number of bits per pixel desired.[[BR]] |
| 106 | /// Values of 1, 4, 8, 16, 24, 32, 48 and 64 bits per channel may[[BR]] |
| 107 | /// be supported. Others values (i.e. indivisible by the number of channels)[[BR]] |
| 108 | /// are likely to raise an !FdoException.[[BR]] |
| 109 | /// [[BR]] |
| 110 | FDO_API virtual void !SetBitsPerPixel (!FdoInt32 bpp);[[BR]] |