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)
|
bool JP2Handler::read(QImage *image)
|
||||||
{
|
{
|
||||||
const qint64 devicepos = device()->pos();
|
|
||||||
const QByteArray data = device()->readAll();
|
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()));
|
opj_codec_t* ojcodec = opj_create_decompress(guessOJCodec(data.constData()));
|
||||||
if (!ojcodec) {
|
if (!ojcodec) {
|
||||||
|
|
|
@ -37,12 +37,11 @@ static const uchar s_jpegexifheader[] = { 0xFF, 0xD8, 0xFF, 0xE1 };
|
||||||
static const struct HeadersTblData {
|
static const struct HeadersTblData {
|
||||||
const uchar *header;
|
const uchar *header;
|
||||||
const int headersize;
|
const int headersize;
|
||||||
const char *format;
|
|
||||||
} HeadersTbl[] = {
|
} HeadersTbl[] = {
|
||||||
{ s_jpgjfifheader, 12, "jpg" },
|
{ s_jpgjfifheader, 12 },
|
||||||
{ s_jpgheader, 4, "jpg" },
|
{ s_jpgheader, 4 },
|
||||||
{ s_jpg2header, 4, "jpg" },
|
{ s_jpg2header, 4 },
|
||||||
{ s_jpegexifheader, 4, "jpg" }
|
{ s_jpegexifheader, 4 }
|
||||||
};
|
};
|
||||||
static const qint16 HeadersTblSize = sizeof(HeadersTbl) / sizeof(HeadersTblData);
|
static const qint16 HeadersTblSize = sizeof(HeadersTbl) / sizeof(HeadersTblData);
|
||||||
|
|
||||||
|
@ -67,6 +66,10 @@ bool JPEGHandler::read(QImage *image)
|
||||||
{
|
{
|
||||||
const QByteArray data = device()->readAll();
|
const QByteArray data = device()->readAll();
|
||||||
|
|
||||||
|
if (Q_UNLIKELY(data.isEmpty())) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
tjhandle jpegdecomp = tjInitDecompress();
|
tjhandle jpegdecomp = tjInitDecompress();
|
||||||
if (!jpegdecomp) {
|
if (!jpegdecomp) {
|
||||||
kWarning() << "Could not initialize decompressor" << tjGetErrorStr();
|
kWarning() << "Could not initialize decompressor" << tjGetErrorStr();
|
||||||
|
@ -157,7 +160,7 @@ bool JPEGHandler::canRead(QIODevice *device)
|
||||||
|
|
||||||
for (int i = 0; i < HeadersTblSize; i++) {
|
for (int i = 0; i < HeadersTblSize; i++) {
|
||||||
if (qstrncmp(data.constData(), reinterpret_cast<const char*>(HeadersTbl[i].header), HeadersTbl[i].headersize) == 0) {
|
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;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,9 +44,7 @@ bool RAWHandler::canRead() const
|
||||||
|
|
||||||
bool RAWHandler::read(QImage *image)
|
bool RAWHandler::read(QImage *image)
|
||||||
{
|
{
|
||||||
const qint64 devicepos = device()->pos();
|
|
||||||
QByteArray data = device()->readAll();
|
QByteArray data = device()->readAll();
|
||||||
device()->seek(devicepos);
|
|
||||||
|
|
||||||
if (Q_UNLIKELY(data.isEmpty())) {
|
if (Q_UNLIKELY(data.isEmpty())) {
|
||||||
return false;
|
return false;
|
||||||
|
|
Loading…
Add table
Reference in a new issue