mirror of
https://bitbucket.org/smil3y/kdelibs.git
synced 2025-02-24 02:42:48 +00:00
kimgio: jp2, jpeg and raw plugins review
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
This commit is contained in:
parent
1f9ff81688
commit
cfe47507fa
3 changed files with 13 additions and 10 deletions
|
@ -117,9 +117,11 @@ bool JP2Handler::canRead() const
|
|||
|
||||
bool JP2Handler::read(QImage *image)
|
||||
{
|
||||
const qint64 devicepos = device()->pos();
|
||||
const QByteArray data = device()->readAll();
|
||||
device()->seek(devicepos);
|
||||
|
||||
if (Q_UNLIKELY(data.isEmpty())) {
|
||||
return false;
|
||||
}
|
||||
|
||||
opj_codec_t* ojcodec = opj_create_decompress(guessOJCodec(data.constData()));
|
||||
if (!ojcodec) {
|
||||
|
|
|
@ -37,12 +37,11 @@ static const uchar s_jpegexifheader[] = { 0xFF, 0xD8, 0xFF, 0xE1 };
|
|||
static const struct HeadersTblData {
|
||||
const uchar *header;
|
||||
const int headersize;
|
||||
const char *format;
|
||||
} HeadersTbl[] = {
|
||||
{ s_jpgjfifheader, 12, "jpg" },
|
||||
{ s_jpgheader, 4, "jpg" },
|
||||
{ s_jpg2header, 4, "jpg" },
|
||||
{ s_jpegexifheader, 4, "jpg" }
|
||||
{ s_jpgjfifheader, 12 },
|
||||
{ s_jpgheader, 4 },
|
||||
{ s_jpg2header, 4 },
|
||||
{ s_jpegexifheader, 4 }
|
||||
};
|
||||
static const qint16 HeadersTblSize = sizeof(HeadersTbl) / sizeof(HeadersTblData);
|
||||
|
||||
|
@ -67,6 +66,10 @@ bool JPEGHandler::read(QImage *image)
|
|||
{
|
||||
const QByteArray data = device()->readAll();
|
||||
|
||||
if (Q_UNLIKELY(data.isEmpty())) {
|
||||
return false;
|
||||
}
|
||||
|
||||
tjhandle jpegdecomp = tjInitDecompress();
|
||||
if (!jpegdecomp) {
|
||||
kWarning() << "Could not initialize decompressor" << tjGetErrorStr();
|
||||
|
@ -157,7 +160,7 @@ bool JPEGHandler::canRead(QIODevice *device)
|
|||
|
||||
for (int i = 0; i < HeadersTblSize; i++) {
|
||||
if (qstrncmp(data.constData(), reinterpret_cast<const char*>(HeadersTbl[i].header), HeadersTbl[i].headersize) == 0) {
|
||||
kDebug() << "Header detected" << HeadersTbl[i].format;
|
||||
kDebug() << "Header detected";
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -44,9 +44,7 @@ bool RAWHandler::canRead() const
|
|||
|
||||
bool RAWHandler::read(QImage *image)
|
||||
{
|
||||
const qint64 devicepos = device()->pos();
|
||||
QByteArray data = device()->readAll();
|
||||
device()->seek(devicepos);
|
||||
|
||||
if (Q_UNLIKELY(data.isEmpty())) {
|
||||
return false;
|
||||
|
|
Loading…
Add table
Reference in a new issue