- Qt 6.12
- Qt GUI
- C++ Classes
- QBitmap
- Qt 6.12.0 Reference Documentation

# QBitmap Class

The QBitmap class provides monochrome (1-bit depth) pixmaps. More...

Header: | `#include <QBitmap>`
CMake: | `find_package(Qt6 REQUIRED COMPONENTS Gui)` `target_link_libraries(mytarget PRIVATE Qt6::Gui)`
qmake: | `QT += gui`
Inherits: | QPixmap

- List of all members, including inherited members
- Deprecated members
- QBitmap is part of Painting Classes and Implicitly Shared Classes.

## Public Functions

| QBitmap()
| QBitmap(const QSize &size)
| QBitmap(const QString &fileName, const char *format = nullptr)
| QBitmap(int width, int height)
void | clear()
void | swap(QBitmap &other)
QBitmap | transformed(const QTransform &matrix) const
| operator QVariant() const

## Static Public Members

QBitmap | fromData(const QSize &size, const uchar *bits, QImage::Format monoFormat = QImage::Format_MonoLSB)
QBitmap | fromImage(const QImage &image, Qt::ImageConversionFlags flags = Qt::AutoColor)
QBitmap | fromImage(QImage &&image, Qt::ImageConversionFlags flags = Qt::AutoColor)
`(since 6.0)` QBitmap | fromPixmap(const QPixmap &pixmap)

## Detailed Description

The QBitmap class is a monochrome off-screen paint device used mainly for creating custom QCursor and QBrush objects, constructing QRegion objects, and for setting masks for pixmaps and widgets.

QBitmap is a QPixmap subclass ensuring a depth of 1, except for null objects which have a depth of 0. If a pixmap with a depth greater than 1 is assigned to a bitmap, the bitmap will be dithered automatically.

Use the QColor objects Qt::color0 and Qt::color1 when drawing on a QBitmap object (or a QPixmap object with depth 1).

Painting with Qt::color0 sets the bitmap bits to 0, and painting with Qt::color1 sets the bits to 1. For a bitmap, 0-bits indicate background (or transparent pixels) and 1-bits indicate foreground (or opaque pixels). Use the clear() function to set all the bits to Qt::color0. Note that using the Qt::black and Qt::white colors make no sense because the QColor::pixel() value is not necessarily 0 for black and 1 for white.

The QBitmap class provides the transformed() function returning a transformed copy of the bitmap; use the QTransform argument to translate, scale, shear, and rotate the bitmap. In addition, QBitmap provides the static fromData() function which returns a bitmap constructed from the given `uchar` data, and the static fromImage() function returning a converted copy of a QImage object.

Just like the QPixmap class, QBitmap is optimized by the use of implicit data sharing. For more information, see the Implicit Data Sharing documentation.

See also QPixmap, QImage, QImageReader, and QImageWriter.

## Member Function Documentation

### QBitmap::QBitmap()

Constructs a null bitmap.

See also QPixmap::isNull().

### `[explicit]` QBitmap::QBitmap(const QSize &size)

Constructs a bitmap with the given size. The pixels in the bitmap are uninitialized.

See also clear().

### `[explicit]` QBitmap::QBitmap(const QString &fileName, const char *format = nullptr)

Constructs a bitmap from the file specified by the given fileName. If the file does not exist, or has an unknown format, the bitmap becomes a null bitmap.

The fileName and format parameters are passed on to the QPixmap::load() function. If the file format uses more than 1 bit per pixel, the resulting bitmap will be dithered automatically.

See also QPixmap::isNull() and QImageReader::imageFormat().

### QBitmap::QBitmap(int width, int height)

Constructs a bitmap with the given width and height. The pixels inside are uninitialized.

See also clear().

### void QBitmap::clear()

Clears the bitmap, setting all its bits to Qt::color0.

### `[static]` QBitmap QBitmap::fromData(const QSize &size, const uchar *bits, QImage::Format monoFormat = QImage::Format_MonoLSB)

Constructs a bitmap with the given size, and sets the contents to the bits supplied.

The bitmap data has to be byte aligned and provided in the bit order specified by monoFormat. The mono format must be either QImage::Format_Mono or QImage::Format_MonoLSB. Use QImage::Format_Mono to specify data on the XBM format.

See also fromImage().

### `[static]` QBitmap QBitmap::fromImage(const QImage &image, Qt::ImageConversionFlags flags = Qt::AutoColor)

Returns a copy of the given image converted to a bitmap using the specified image conversion flags.

See also fromData().

### `[static]` QBitmap QBitmap::fromImage(QImage &&image, Qt::ImageConversionFlags flags = Qt::AutoColor)

Returns a copy of the given image converted to a bitmap using the specified image conversion flags.

This is an overloaded function.

See also fromData().

### `[static, since 6.0]` QBitmap QBitmap::fromPixmap(const QPixmap &pixmap)

Returns a copy of the given pixmap converted to a bitmap.

If the pixmap has a depth greater than 1, the resulting bitmap will be dithered automatically.

This function was introduced in Qt 6.0.

See also QPixmap::depth().

### void QBitmap::swap(QBitmap &other)

Swaps this bitmap with other. This operation is very fast and never fails.

### QBitmap QBitmap::transformed(const QTransform &matrix) const

Returns a copy of this bitmap, transformed according to the given matrix.

See also QPixmap::transformed().

### QBitmap::operator QVariant() const

Returns the bitmap as a QVariant.