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

IP电话/视频会议

开发平台:

Visual C++

  1. /*
  2.  * pixels1.h
  3.  *
  4.  * 1 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: pixels1.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:02  robertj
  40.  * Added open source copyright license.
  41.  *
  42.  * Revision 1.6  1995/06/17 11:12:56  robertj
  43.  * Documentation update.
  44.  *
  45.  * Revision 1.5  1995/03/14 12:42:05  robertj
  46.  * Updated documentation to use HTML codes.
  47.  *
  48.  * Revision 1.4  1995/01/09  12:39:04  robertj
  49.  * Documentation.
  50.  *
  51.  * Revision 1.3  1994/12/12  10:07:08  robertj
  52.  * Made depth member of PPixels and removed virtual function.
  53.  *
  54.  * Revision 1.2  1994/12/05  11:34:13  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:05  robertj
  59.  * Initial revision
  60.  *
  61.  */
  62. #define _PPIXELS1
  63. #ifdef __GNUC__
  64. #pragma interface
  65. #endif
  66. ///////////////////////////////////////////////////////////////////////////////
  67. // PPixels1
  68. /**A 1 bit per pixel image. This is a non true colour rendition of the image
  69.    with 1 bit ber pixel allowing 2 colours to be represented. The palette
  70.    is mandatory with pixel images of this class.
  71.  */
  72. class PPixels1 : public PPixelBase
  73. {
  74.   PCLASSINFO(PPixels1, PPixelBase);
  75.   public:
  76.     /** Create a 1 bit per pixel image. */
  77.     PPixels1(
  78.       PDIMENSION dx,  /// Width of image in pixels.
  79.       PDIMENSION dy   /// Height of image in pixels.
  80.     );
  81.   /**@name Overrides from class PPixelBase */
  82.    /**Set the pixel at the location to the specified value. This sets the
  83.        colour of the pixel to that in the palette at the index position.
  84.      */
  85.     virtual void SetPixel(
  86.       PORDINATE x,   /// Horizontal position of pixel in raster.
  87.       PORDINATE y,   /// Vertical raster line.
  88.       BYTE value     /// New value for pixel.
  89.     );
  90.    /**Get the pixel at the location. This returns the index into the palette
  91.        that the pixel value represents.
  92.        
  93.        @return
  94.        current value of pixel.
  95.      */
  96.     virtual BYTE GetPixel(
  97.       PORDINATE x,    /// Horizontal position of pixel in raster.
  98.       PORDINATE y     /// Vertical raster line.
  99.     ) const;
  100.   protected:
  101.    /**Set the colours of a raster line in the pixel image. This is the
  102.        polymorphic form of the Ref{SetRaster()} functions.
  103.      */
  104.     virtual void SetRasterValues(
  105.       PORDINATE x,     /// Horizontal position of start pixel in raster.
  106.       PORDINATE y,     /// Vertical raster line.
  107.       const BYTE * raster,  /// Pointer to array of values for pixels.
  108.       PDIMENSION width /// Number of pixels in raster to set.
  109.     );
  110.    /**Get the colours of a raster line in the pixel image. This is the
  111.        polymorphic form of the Ref{GetRaster()} functions.
  112.      */
  113.     virtual void GetRasterValues(
  114.       PORDINATE x,     /// Horizontal position of start pixel in raster.
  115.       PORDINATE y,     /// Vertical raster line.
  116.       BYTE * raster,   /// Pointer to array of values for pixels.
  117.       PDIMENSION width /// Number of pixels in raster to get.
  118.     ) const;
  119. #ifdef DOC_PLUS_PLUS
  120. };
  121. #endif
  122. // Class declaration continued in platform specific header file ///////////////