pixels24.h
上传用户:hzhsqp
上传日期:2007-01-06
资源大小:1600k
文件大小:6k
源码类别:

IP电话/视频会议

开发平台:

Visual C++

  1. /*
  2.  * pixels24.h
  3.  *
  4.  * 24 bit pixel image.
  5.  *
  6.  * Portable Windows Library
  7.  *
  8.  * Copyright (c) 1993-1998 Equivalence Pty. Ltd.
  9.  *
  10.  * The contents of this file are subject to the Mozilla Public License
  11.  * Version 1.0 (the "License"); you may not use this file except in
  12.  * compliance with the License. You may obtain a copy of the License at
  13.  * http://www.mozilla.org/MPL/
  14.  *
  15.  * Software distributed under the License is distributed on an "AS IS"
  16.  * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
  17.  * the License for the specific language governing rights and limitations
  18.  * under the License.
  19.  *
  20.  * The Original Code is Portable Windows Library.
  21.  *
  22.  * The Initial Developer of the Original Code is Equivalence Pty. Ltd.
  23.  *
  24.  * Portions are Copyright (C) 1993 Free Software Foundation, Inc.
  25.  * All Rights Reserved.
  26.  *
  27.  * Contributor(s): ______________________________________.
  28.  *
  29.  * $Log: pixels24.h,v $
  30.  * Revision 1.10  1999/03/10 03:49:52  robertj
  31.  * More documentation adjustments.
  32.  *
  33.  * Revision 1.9  1999/03/09 08:01:49  robertj
  34.  * Changed comments for doc++ support (more to come).
  35.  *
  36.  * Revision 1.8  1999/02/16 08:08:46  robertj
  37.  * MSVC 6.0 compatibility changes.
  38.  *
  39.  * Revision 1.7  1998/09/23 06:28:04  robertj
  40.  * Added open source copyright license.
  41.  *
  42.  * Revision 1.6  1995/06/17 11:12:57  robertj
  43.  * Documentation update.
  44.  *
  45.  * Revision 1.5  1995/03/14 12:42:07  robertj
  46.  * Updated documentation to use HTML codes.
  47.  *
  48.  * Revision 1.4  1995/01/09  12:39:09  robertj
  49.  * Documentation.
  50.  *
  51.  * Revision 1.3  1994/12/12  10:07:10  robertj
  52.  * Made depth member of PPixels and removed virtual function.
  53.  *
  54.  * Revision 1.2  1994/12/05  11:34:16  robertj
  55.  * Major rewrite of images, pictures and pixmaps.
  56.  * Renamed PPict, PPixels and PImage to make sure all uses are found.
  57.  *
  58.  * Revision 1.1  1994/10/23  04:52:11  robertj
  59.  * Initial revision
  60.  *
  61.  */
  62. #define _PPIXELS24
  63. #ifdef __GNUC__
  64. #pragma interface
  65. #endif
  66. ///////////////////////////////////////////////////////////////////////////////
  67. // PPixels24
  68. /**A 24 bit per pixel image. This is a true colour rendition of the image with
  69.    8 bits ber red, green and blue components.
  70.  */
  71. class PPixels24 : public PPixelBase
  72. {
  73.   PCLASSINFO(PPixels24, PPixelBase);
  74.   public:
  75.     /** Create a 24 bit per pixel image. */
  76.     PPixels24(
  77.       PDIMENSION dx,  /// Width of image in pixels.
  78.       PDIMENSION dy   /// Height of image in pixels.
  79.     );
  80.   /**@name Overrides from class PPixelBase */
  81.    /**Set the pixel at the location specified to the particular colour.
  82.      */
  83.     virtual void SetPixelColour(
  84.       PORDINATE x,            /// Horizontal position of pixel in raster.
  85.       PORDINATE y,            /// Vertical raster line.
  86.       const PColour& colour   /// Colour to set pixel to.
  87.     );
  88.    /**Get the colour of the pixel at the specified location.
  89.        @return
  90.        colour for the pixel.
  91.      */
  92.     virtual PColour GetPixelColour(
  93.       PORDINATE x,    /// Horizontal position of pixel in raster.
  94.       PORDINATE y     /// Vertical raster line.
  95.     ) const;
  96.    /**Set the pixel at the location to the specified value. This will set a
  97.        grey scale value for the pixel.
  98.      */
  99.     virtual void SetPixel(
  100.       PORDINATE x,   /// Horizontal position of pixel in raster.
  101.       PORDINATE y,   /// Vertical raster line.
  102.       BYTE value     /// New value for pixel.
  103.     );
  104.    /**Get the pixel at the location. This returns the luminance for the pixel
  105.        colour.
  106.        
  107.        @return
  108.        current value of pixel.
  109.      */
  110.     virtual BYTE GetPixel(
  111.       PORDINATE x,    /// Horizontal position of pixel in raster.
  112.       PORDINATE y     /// Vertical raster line.
  113.     ) const;
  114.   protected:
  115.    /**Set the colours of a raster line in the pixel image. This is the
  116.        polymorphic form of the Ref{SetRaster()} functions.
  117.      */
  118.     virtual void SetRasterColours(
  119.       PORDINATE x,     /// Horizontal position of start pixel in raster.
  120.       PORDINATE y,     /// Vertical raster line.
  121.       const PColourArray & rasterColours,  /// Array of colours for pixels.
  122.       PDIMENSION width /// Number of pixels in raster to set
  123.     );
  124.    /**Get the colours of a raster line in the pixel image. This is the
  125.        polymorphic form of the Ref{GetRaster()} functions.
  126.      */
  127.     virtual void GetRasterColours(
  128.       PORDINATE x,     /// Horizontal position of start pixel in raster.
  129.       PORDINATE y,     /// Vertical raster line.
  130.       PColourArray & rasterColours,  /// Array of colours for pixels.
  131.       PDIMENSION width /// Number of pixels in raster to get.
  132.     ) const;
  133.    /**Set the colours of a raster line in the pixel image. This is the
  134.        polymorphic form of the Ref{SetRaster()} functions.
  135.      */
  136.     virtual void SetRasterValues(
  137.       PORDINATE x,     /// Horizontal position of start pixel in raster.
  138.       PORDINATE y,     /// Vertical raster line.
  139.       const BYTE * raster,  /// Pointer to array of values for pixels.
  140.       PDIMENSION width /// Number of pixels in raster to set.
  141.     );
  142.    /**Get the colours of a raster line in the pixel image. This is the
  143.        polymorphic form of the Ref{GetRaster()} functions.
  144.      */
  145.     virtual void GetRasterValues(
  146.       PORDINATE x,     /// Horizontal position of start pixel in raster.
  147.       PORDINATE y,     /// Vertical raster line.
  148.       BYTE * raster,   /// Pointer to array of values for pixels.
  149.       PDIMENSION width /// Number of pixels in raster to get.
  150.     ) const;
  151. #ifdef DOC_PLUS_PLUS
  152. };
  153. #endif
  154. // Class declaration continued in platform specific header file ///////////////