uint delta = 0;
uint avg = 0;
uint bytes = image.numBytes();
+ if (bytes == 0) return 0;
uint STEPS = bytes / 2;
QVarLengthArray<uchar> pivot(STEPS);
kDebug(DBG_AREA) << "Using " << STEPS << " steps\n";
- uchar *bits = image.bits();
+ const uchar *bits=image.bits();
// First pass: get pivots and taking average
- for (uint i = 0; i < STEPS ; i++) {
- pivot[i] = bits[i*(bytes/STEPS)];
- avg += pivot[i];
+ for( uint i=0; i<STEPS ; i++ ){
+ pivot[i] = bits[2 * i];
+#if QT_VERSION >= 0x040700
+ avg+=pivot.at(i);
+#else
+ avg+=pivot[i];
+#endif
}
- avg = avg / STEPS;
+ avg=avg/STEPS;
// Second Step: calculate delta (average?)
- for (uint i = 0; i < STEPS; i++) {
- int curdelta = abs(int(avg - pivot[i]));
- delta += curdelta;
+ for (uint i=0; i<STEPS; i++)
+ {
+#if QT_VERSION >= 0x040700
+ int curdelta=abs(int(avg - pivot.at(i)));
+#else
+ int curdelta=abs(int(avg - pivot[i]));
+#endif
+ delta+=curdelta;
}
return delta / STEPS;
}