QuiltingHMI/datafile/hpgl/plotbitmap.h
2024-02-06 15:10:48 +08:00

65 lines
2.3 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef PLOTBITMAP_H
#define PLOTBITMAP_H
#include <QObject>
#include <QPainter>
#include <QBitmap>
#include <QFile>
//#include <gdiplus.h>
//BMP文件头14字节
typedef struct /**** BMP file header structure ****/
{
unsigned short bfType; /* 类型 */
unsigned int bfSize; /* 整个bmp文件大小 */
unsigned short bfReserved1; /* Reserved */
unsigned short bfReserved2; /* ... */
unsigned int bfOffBits; /* 偏移数,位图文件头+位图信息头+调色板大小 */
} BmpHeader;
//位图信息头40字节
typedef struct /**** BMP file info structure ****/
{
unsigned int biSize; /* Size of info header */
int biWidth; /* Width of image */
int biHeight; /* Height of image */
unsigned short biPlanes; /* Number of color planes */
unsigned short biBitCount; /* Number of bits per pixel */
unsigned int biCompression; /* Type of compression to use */
unsigned int biSizeImage; /* Size of image data */
int biXPelsPerMeter; /* X pixels per meter */
int biYPelsPerMeter; /* Y pixels per meter */
unsigned int biClrUsed; /* Number of colors used */
unsigned int biClrImportant; /* Number of important colors */
} BmpInfo;
class PlotBitmap : public QObject
{
Q_OBJECT
public:
explicit PlotBitmap(QObject *parent = NULL);
public:
//创建单色的位图
//输入参数:
// bTransparent 透明显示
// crBkColor 背景颜色(在透明显示时位图中颜色为crBkColor的点将不被显示在纸样上)
// iWidth 位图的宽,单位:像素
// iHeight 位图的高,单位:像素
// iStride 位图每行的字节数
// nPixFormat 位图点的格式(见GDI+中BitmapData类PixelFormat的定义)
// pBmpData 位图数据(保存数据的顺序是从左到右,从上到下)
//返回值:
// NULL 失败
// 非NULL 新生成的位图指针
//QBitmap Create1BPPBitmap(int bTransparent,int crBkColor,int iWidth,int iHeight,int iStride,int nPixFormat,char *pBmpData);
QBitmap Create1BPPBitmap(int iWidth,int iHeight,unsigned char *pBmpData);
void SetUncharBit(unsigned char & dat, int index, int val);
signals:
public slots:
};
#endif // PLOTBITMAP_H