145 const QRgb c0 = QColor(Qt::black).rgb();
146 const QRgb c1 = QColor(Qt::white).rgb();
147 if (image.color(0) == c0 && image.color(1) == c1) {
148 image.invertPixels();
149 image.setColor(0, c1);
150 image.setColor(1, c0);
153 std::unique_ptr<QPlatformPixmap> data(QGuiApplicationPrivate::platformIntegration()->createPlatformPixmap(QPlatformPixmap::BitmapType));
155 data->fromImageInPlace(image, flags | Qt::MonoOnly);
156 return QBitmap::fromPixmap(QPixmap(data.release()));
165QBitmap QBitmap::fromImage(
const QImage &image, Qt::ImageConversionFlags flags)
170 return makeBitmap(image.convertToFormat(QImage::Format_MonoLSB, flags), flags);
202QBitmap QBitmap::fromData(
const QSize &size,
const uchar *bits, QImage::Format monoFormat)
204 Q_ASSERT(monoFormat == QImage::Format_Mono || monoFormat == QImage::Format_MonoLSB);
206 QImage image(size, monoFormat);
207 image.setColor(0, QColor(Qt::color0).rgb());
208 image.setColor(1, QColor(Qt::color1).rgb());
212 int bytesPerLine = (size.width() + 7) / 8;
213 for (
int y = 0; y < size.height(); ++y)
214 memcpy(image.scanLine(y), bits + bytesPerLine * y, bytesPerLine);
215 return QBitmap::fromImage(std::move(image));