Subversion Repositories Scribus

Rev

Rev 5977 | Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
5937 jghali 1
#include <qfile.h>
2
#include <qfileinfo.h>
3
#include "scimgdataloader_qt.h"
4
 
5
ScImgDataLoader_QT::ScImgDataLoader_QT(void) : ScImgDataLoader()
6
{
7
        initSupportedFormatList();
8
}
9
 
10
void ScImgDataLoader_QT::initSupportedFormatList(void)
11
{
12
        m_supportedFormats.clear();
13
        QStringList fmtList = QImage::inputFormatList();
14
        for (uint i = 0; i < fmtList.count(); i++)
15
                m_supportedFormats.append( fmtList[i].lower() );
16
}
17
 
18
void ScImgDataLoader_QT::loadEmbeddedProfile(const QString& fn)
19
{
20
        m_embeddedProfile.resize(0);
21
        m_profileComponents = 0;
22
}
23
 
24
bool ScImgDataLoader_QT::loadPicture(const QString& fn, int /*res*/, bool /*thumbnail*/)
25
{
26
        if (!QFile::exists(fn))
27
                return false;
28
        initialize();
29
        if (m_image.load(fn))
30
        {
31
                m_imageInfoRecord.type = 6;
32
                m_imageInfoRecord.exifDataValid = false;
33
                float xres = m_image.dotsPerMeterX() * 0.0254;
34
                float yres = m_image.dotsPerMeterY() * 0.0254;
35
                int resInf = m_imageInfoRecord.lowResType;
36
                m_image = m_image.convertDepth(32);
37
                m_image.setAlphaBuffer(true);
38
                m_image.setDotsPerMeterX (QMAX(2834, (int) (xres / 0.0254)));
39
                m_image.setDotsPerMeterY (QMAX(2834, (int) (yres / 0.0254)));
40
                m_imageInfoRecord.colorspace = 0;
41
                m_imageInfoRecord.xres = QMAX(72, qRound(xres));
42
                m_imageInfoRecord.yres = QMAX(72, qRound(yres));
43
                m_imageInfoRecord.lowResType = resInf;
44
                m_imageInfoRecord.BBoxX = 0;
45
                m_imageInfoRecord.BBoxH = m_image.height();
46
                return true;
47
        }
48
        return true;
49
}
50
 
51
void ScImgDataLoader_QT::preloadAlphaChannel(const QString& fn, int res)
52
{
53
        initialize();
54
        QFileInfo fi = QFileInfo(fn);
55
        if (!fi.exists())
56
                return;
57
        QString ext = fi.extension(false).lower();
58
        if ((ext == "jpg") || (ext == "jpeg"))
59
                return;
60
        if (m_image.load(fn))
61
        {
62
                m_image = m_image.convertDepth(32);
63
                if (m_image.hasAlphaBuffer())
64
                        m_image.setAlphaBuffer(true);
65
        }
66
}