/*! \since 4.2 Returns \c true if the writer supports \a option; otherwise returns false. Different image formats support different options. Call this function to determine whether a certain option is supported by the current format. For example, the PNG format allows you to embed text into the image's metadata (see text()). \snippet code/src_gui_image_qimagewriter.cpp 2 Options can be tested after the writer has been associated with a format. \sa QImageReader::supportsOption(), setFormat() */ bool QImageWriter::supportsOption(QImageIOHandler::ImageOption option) const { if (!d->handler && (d->handler = createWriteHandlerHelper(d->device, d->format)) == 0) { d->imageWriterError = QImageWriter::UnsupportedFormatError; d->errorString = QImageWriter::tr("Unsupported image format"); return false; } return d->handler->supportsOption(option); }
/*! Returns true if QImageWriter can write the image; i.e., the image format is supported and the assigned device is open for reading. \sa write(), setDevice(), setFormat() */ bool QImageWriter::canWrite() const { if (d->device && !d->handler && (d->handler = createWriteHandlerHelper(d->device, d->format)) == 0) { d->imageWriterError = QImageWriter::UnsupportedFormatError; d->errorString = QT_TRANSLATE_NOOP(QImageWriter, QLatin1String("Unsupported image format")); return false; } if (d->device && !d->device->isOpen()) d->device->open(QIODevice::WriteOnly); if (!d->device || !d->device->isWritable()) { d->imageWriterError = QImageWriter::DeviceError; d->errorString = QT_TRANSLATE_NOOP(QImageWriter, QLatin1String("Device not writable")); return false; } return true; }
bool QImageWriterPrivate::canWriteHelper() { if (!device) { imageWriterError = QImageWriter::DeviceError; errorString = QImageWriter::tr("Device is not set"); return false; } if (!device->isOpen()) device->open(QIODevice::WriteOnly); if (!device->isWritable()) { imageWriterError = QImageWriter::DeviceError; errorString = QImageWriter::tr("Device not writable"); return false; } if (!handler && (handler = createWriteHandlerHelper(device, format)) == 0) { imageWriterError = QImageWriter::UnsupportedFormatError; errorString = QImageWriter::tr("Unsupported image format"); return false; } return true; }