Tiny NPE fix
[zxing.git] / symbian / QQrDecoder / CameraImageWrapper.cpp
1 #include "CameraImageWrapper.h"\r
2 #include <QColor>\r
3 #include <QApplication>\r
4 #include <QDesktopWidget>\r
5 \r
6 CameraImageWrapper::CameraImageWrapper() : LuminanceSource()\r
7 {\r
8 }\r
9 \r
10 CameraImageWrapper::CameraImageWrapper(CameraImageWrapper& otherInstance) : LuminanceSource()\r
11                     {\r
12     image = otherInstance.getOriginalImage().copy();\r
13                     }\r
14 \r
15 CameraImageWrapper::~CameraImageWrapper()\r
16 {\r
17 }\r
18 \r
19 int CameraImageWrapper::getWidth() const\r
20     {\r
21     return image.width();\r
22     }\r
23 \r
24 int CameraImageWrapper::getHeight() const\r
25     {\r
26     return image.height();\r
27     }\r
28 \r
29 unsigned char CameraImageWrapper::getPixel(int x, int y) const\r
30     {\r
31     QRgb pixel = image.pixel(x,y);\r
32 \r
33     return qGray(pixel);//((qRed(pixel) + qGreen(pixel) + qBlue(pixel)) / 3);\r
34     }\r
35 \r
36 unsigned char* CameraImageWrapper::copyMatrix() const\r
37     {\r
38         unsigned char* newMatrix = (unsigned char*)malloc(image.width()*image.height()*sizeof(unsigned char));\r
39             \r
40         int cnt = 0;\r
41         for(int i=0; i<image.width(); i++)\r
42         {\r
43             for(int j=0; j<image.height(); j++)\r
44             {\r
45                 newMatrix[cnt++] = getPixel(i,j);\r
46             }\r
47         }\r
48         \r
49         return newMatrix;\r
50     }\r
51 \r
52 void CameraImageWrapper::setImage(QString fileName)\r
53 {\r
54     image.load(fileName);\r
55 \r
56     if(image.width() > QApplication::desktop()->width())\r
57         image = image.scaled(QApplication::desktop()->width(), image.height(), Qt::IgnoreAspectRatio);\r
58 \r
59     if(image.height() > QApplication::desktop()->height())\r
60         image = image.scaled(image.width(), QApplication::desktop()->height(), Qt::IgnoreAspectRatio);\r
61 }\r
62 \r
63 void CameraImageWrapper::setImage(QImage newImage)\r
64 {\r
65     image = newImage.copy();\r
66 \r
67     if(image.width() > 640)\r
68         image = image.scaled(640, image.height(), Qt::KeepAspectRatio);\r
69 }\r
70 \r
71 QImage CameraImageWrapper::grayScaleImage(QImage::Format f)\r
72 {\r
73     QImage tmp(image.width(), image.height(), f);\r
74     for(int i=0; i<image.width(); i++)\r
75     {\r
76         for(int j=0; j<image.height(); j++)\r
77         {\r
78             int pix = (int)getPixel(i,j);\r
79             tmp.setPixel(i,j, qRgb(pix ,pix,pix));\r
80         }   \r
81     }\r
82 \r
83     return tmp;\r
84 \r
85     //return image.convertToFormat(f);\r
86 }\r
87 \r
88 QImage CameraImageWrapper::getOriginalImage()\r
89 {\r
90     return image;\r
91 }\r
92 \r
93 \r