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