AReader::Error ReaderQt::read( imageCache &cache, const uint8_t* data, unsigned length, QString format ) const{ QByteArray byte_data = fromData( data, length ); QBuffer buffer( &byte_data ); QImageReader image_reader( &buffer, format.toLocal8Bit() ); if( image_reader.canRead() ){ //Read first image QImage frame; if( !image_reader.read( &frame ) ) return ERROR_TYPE_UNKNOWN; int frame_amount = image_reader.imageCount(); auto isAnim = image_reader.supportsAnimation(); cache.set_info( frame_amount, isAnim, isAnim ? image_reader.loopCount() : -1 ); int current_frame = 1; do{ cache.add_frame( frame, image_reader.nextImageDelay() ); if( frame_amount > 0 && current_frame >= frame_amount ) break; current_frame++; image_reader.jumpToNextImage(); } while( image_reader.read( &frame ) ); cache.set_fully_loaded(); //TODO: What to do on fail? } else return ERROR_TYPE_UNKNOWN; return ERROR_NONE; }
/*! This is an overloaded function. This convenience function creates a new message from \a data, \a encoding and \a parent. */ IrcMessage* IrcMessage::fromData(const QByteArray& data, const QByteArray& encoding, QObject* parent) { IrcMessage* message = fromData(data, parent); if (message) message->setEncoding(encoding); return message; }
bool QDirectFBPixmapData::fromFile(const QString &filename, const char *format, Qt::ImageConversionFlags flags) { if (!QFile::exists(filename)) return false; if (flags == Qt::AutoColor) { if (filename.startsWith(QLatin1Char(':'))) { // resource QFile file(filename); if (!file.open(QIODevice::ReadOnly)) return false; const QByteArray data = file.readAll(); file.close(); return fromData(reinterpret_cast<const uchar*>(data.constData()), data.size(), format, flags); } else { DFBDataBufferDescription description; description.flags = DBDESC_FILE; const QByteArray fileNameData = filename.toLocal8Bit(); description.file = fileNameData.constData(); if (fromDataBufferDescription(description)) { return true; } // fall back to Qt } } return QPixmapData::fromFile(filename, format, flags); }
/*! Searches for and parses all certificates in \a device that are encoded in the specified \a format and returns them in a list of certificates. \sa fromData() */ QList<QSslCertificate> QSslCertificate::fromDevice(QIODevice *device, QSsl::EncodingFormat format) { if (!device) { qWarning("QSslCertificate::fromDevice: cannot read from a null device"); return QList<QSslCertificate>(); } return fromData(device->readAll(), format); }
static PrivateKey getKey(Provider *p, const I &in, const QSecureArray &passphrase, ConvertResult *result) { PrivateKey k; PKeyContext *c = static_cast<PKeyContext *>(getContext("pkey", p)); if(!c) { if(result) *result = ErrorDecode; return k; } ConvertResult r = fromData(c, in, passphrase); if(result) *result = r; if(r == ConvertGood) k.change(c); return k; }
static PublicKey getKey(Provider *p, const I &in, const SecureArray &, ConvertResult *result) { PublicKey k; PKeyContext *c = static_cast<PKeyContext *>(getContext("pkey", p)); if(!c) { if(result) *result = ErrorDecode; return k; } ConvertResult r = fromData(c, in); if(result) *result = r; if(r == ConvertGood) k.change(c); else delete c; return k; }
QBitmap::QBitmap(const QSize &size, const uchar *bits, bool isXbitmap) { *this = fromData(size, bits, isXbitmap ? QImage::Format_MonoLSB : QImage::Format_Mono); }
QBitmap::QBitmap(int w, int h, const uchar *bits, bool isXbitmap) { *this = fromData(QSize(w, h), bits, isXbitmap ? QImage::Format_MonoLSB : QImage::Format_Mono); }
bool ReaderQt::can_read( const uint8_t* data, unsigned length, QString format ) const{ QByteArray byte_data = fromData( data, length ); QBuffer buffer( &byte_data ); QImageReader image_reader( &buffer, format.toLocal8Bit() ); return image_reader.canRead(); }
/*! Creates a new message from \a sender and \a command with \a parent. */ IrcMessage* IrcMessage::fromCommand(const QString& sender, IrcCommand* command, QObject* parent) { return fromData(":" + sender.toUtf8() + " " + command->toString().toUtf8(), "UTF-8", parent); }
/*! \internal \deprecated \sa fromData() */ IrcMessage* IrcMessage::fromString(const QString& str, QObject* parent) { return fromData(str.toUtf8(), "UTF-8", parent); }