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

IP电话/视频会议

开发平台:

Visual C++

  1. /*
  2.  * pixels2.h
  3.  *
  4.  * 2 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: pixels2.h,v $
  30.  * Revision 1.9  1999/03/10 03:49:52  robertj
  31.  * More documentation adjustments.
  32.  *
  33.  * Revision 1.8  1999/03/09 08:01:49  robertj
  34.  * Changed comments for doc++ support (more to come).
  35.  *
  36.  * Revision 1.7  1999/02/16 08:08:46  robertj
  37.  * MSVC 6.0 compatibility changes.
  38.  *
  39.  * Revision 1.6  1998/09/23 06:28:03  robertj
  40.  * Added open source copyright license.
  41.  *
  42.  * Revision 1.5  1995/03/14 12:42:06  robertj
  43.  * Updated documentation to use HTML codes.
  44.  *
  45.  * Revision 1.4  1995/01/09  12:39:06  robertj
  46.  * Documentation.
  47.  *
  48.  * Revision 1.3  1994/12/12  10:07:09  robertj
  49.  * Made depth member of PPixels and removed virtual function.
  50.  *
  51.  * Revision 1.2  1994/12/05  11:34:15  robertj
  52.  * Major rewrite of images, pictures and pixmaps.
  53.  * Renamed PPict, PPixels and PImage to make sure all uses are found.
  54.  *
  55.  * Revision 1.1  1994/10/23  04:52:09  robertj
  56.  * Initial revision
  57.  *
  58.  */
  59. #define _PPIXELS2
  60. #ifdef __GNUC__
  61. #pragma interface
  62. #endif
  63. ///////////////////////////////////////////////////////////////////////////////
  64. // PPixels2
  65. /**A 2 bit per pixel image. This is a non true colour rendition of the image
  66.    with 2 bits ber pixel allowing 4 colours to be represented. The palette
  67.    is mandatory with pixel images of this class.
  68.  */
  69. class PPixels2 : public PPixelBase
  70. {
  71.   PCLASSINFO(PPixels2, PPixelBase);
  72.   public:
  73.     /** Create a 2 bit per pixel image. */
  74.     PPixels2(
  75.       PDIMENSION dx,  /// Width of image in pixels.
  76.       PDIMENSION dy   /// Height of image in pixels.
  77.     );
  78.   /**@name Overrides from class PPixelBase */
  79.    /**Set the pixel at the location to the specified value. This sets the
  80.        colour of the pixel to that in the palette at the index position.
  81.      */
  82.     virtual void SetPixel(
  83.       PORDINATE x,   /// Horizontal position of pixel in raster.
  84.       PORDINATE y,   /// Vertical raster line.
  85.       BYTE value     /// New value for pixel.
  86.     );
  87.    /**Get the pixel at the location. This returns the index into the palette
  88.        that the pixel value represents.
  89.        
  90.        @return
  91.        current value of pixel.
  92.      */
  93.     virtual BYTE GetPixel(
  94.       PORDINATE x,    /// Horizontal position of pixel in raster.
  95.       PORDINATE y     /// Vertical raster line.
  96.     ) const;
  97.   protected:
  98.    /**Set the colours of a raster line in the pixel image. This is the
  99.        polymorphic form of the $B$SetRaster()$B$ functions.
  100.      */
  101.     virtual void SetRasterValues(
  102.       PORDINATE x,     /// Horizontal position of start pixel in raster.
  103.       PORDINATE y,     /// Vertical raster line.
  104.       const BYTE * raster,  /// Pointer to array of values for pixels.
  105.       PDIMENSION width /// Number of pixels in raster to set.
  106.     );
  107.    /**Get the colours of a raster line in the pixel image. This is the
  108.        polymorphic form of the $B$GetRaster()$B$ functions.
  109.      */
  110.     virtual void GetRasterValues(
  111.       PORDINATE x,     /// Horizontal position of start pixel in raster.
  112.       PORDINATE y,     /// Vertical raster line.
  113.       BYTE * raster,   /// Pointer to array of values for pixels.
  114.       PDIMENSION width /// Number of pixels in raster to get.
  115.     ) const;
  116. #ifdef DOC_PLUS_PLUS
  117. };
  118. #endif
  119. // Class declaration continued in platform specific header file ///////////////