📄 pixels.h
字号:
/*
* pixels.h
*
* Pixel images.
*
* Portable Windows Library
*
* Copyright (c) 1993-1998 Equivalence Pty. Ltd.
*
* The contents of this file are subject to the Mozilla Public License
* Version 1.0 (the "License"); you may not use this file except in
* compliance with the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS"
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
* the License for the specific language governing rights and limitations
* under the License.
*
* The Original Code is Portable Windows Library.
*
* The Initial Developer of the Original Code is Equivalence Pty. Ltd.
*
* Portions are Copyright (C) 1993 Free Software Foundation, Inc.
* All Rights Reserved.
*
* Contributor(s): ______________________________________.
*
* $Log: pixels.h,v $
* Revision 1.10 2001/05/22 12:49:33 robertj
* Did some seriously wierd rewrite of platform headers to eliminate the
* stupid GNU compiler warning about braces not matching.
*
* Revision 1.9 1998/11/30 03:00:15 robertj
* New directory structure
*
* Revision 1.8 1998/09/24 03:41:08 robertj
* Added open software license.
*
* Revision 1.7 1996/08/08 10:10:17 robertj
* Directory structure changes for common files.
*
* Revision 1.6 1995/03/12 05:00:15 robertj
* Re-organisation of DOS/WIN16 and WIN32 platforms to maximise common code.
* Used built-in equate for WIN32 API (_WIN32).
*
* Revision 1.5 1995/02/05 00:54:22 robertj
* Removed redundent class declaration.
*
* Revision 1.4 1994/12/05 11:34:29 robertj
* Major rewrite of images, pictures and pixmaps.
* Renamed PPict, PPixels and PImage to make sure all uses are found.
*
* Revision 1.3 1994/10/23 05:50:06 robertj
* Split pixels into subclasses for each pixel size.
* Moved large slabs to common.
*
* Revision 1.2 1994/04/20 12:17:44 robertj
* assert changes
*
* Revision 1.1 1994/04/12 08:21:52 robertj
* Initial revision
*
*/
#ifndef _PPIXELS
class PCanvas;
#if defined(_WIN32)
typedef unsigned char * PPixelDataPtr;
#else
typedef unsigned char __huge * PPixelDataPtr;
#endif
///////////////////////////////////////////////////////////////////////////////
// PPixels
#define _PPIXELS_PLATFORM_INCLUDE
#include "../../pixels.h"
#endif
#ifdef _PPIXELS_PLATFORM_INCLUDE
#undef _PPIXELS_PLATFORM_INCLUDE
public:
static PPixelImage CreateBitmap(HBITMAP hBm);
// Create a pixels object from the MS-Windows Device Dependent Bitmap
virtual HDC CreateImageDC();
virtual void CloseImageDC(HDC hDC);
// Support for PMemoryCanvas
HBITMAP GetHBITMAP(HDC hDC) const;
// Get the bitmap as an MS-Windows Device Dependent Bitmap
class DIBInfo {
public:
DIBInfo(const PPixelBase & pix, HPALETTE hPal);
// Create a BITMAPINFO data pointer.
~DIBInfo() { free(info); }
int Width() const { return (int)info->bmiHeader.biWidth; }
int Height() const { return (int)info->bmiHeader.biHeight; }
UINT Usage() const { return colourUse; }
operator BITMAPINFO *() const { return info; }
operator BITMAPINFOHEADER *() const { return &info->bmiHeader; }
private:
BITMAPINFO * info;
UINT colourUse;
};
friend class DIBInfo;
protected:
// Member variables
BITMAPINFOHEADER info;
// MS-Windows Device Independent Bitmap header info
HBITMAP hBitmap;
// MS-Windows Device Dependent Bitmap for interaction with PMemoryCanvas.
#endif
// End Of File ///////////////////////////////////////////////////////////////
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -