533bool QImageIOHandler::allocateImage(QSize size, QImage::Format format, QImage *image)
536 if (size.isEmpty() || format <= QImage::Format_Invalid || format >= QImage::NImageFormats)
539 if (image->size() == size && image->format() == format) {
542 if (
const int mbLimit = QImageReader::allocationLimit()) {
543 qsizetype depth = qMax(qt_depthForFormat(format), 32);
544 QImageData::ImageSizeParameters szp =
545 QImageData::calculateImageParameters(size.width(), size.height(), depth);
548 const qsizetype mb = szp.totalSize >> 20;
549 if (mb > mbLimit || (mb == mbLimit && szp.totalSize % (1 << 20))) {
550 qCWarning(lcImageIo,
"QImageIOHandler: Rejecting image as it exceeds the current "
551 "allocation limit of %i megabytes", mbLimit);
555 *image = QImage(size, format);
557 return !image->isNull();