#include <math.h>
#include <QImage>
#include <QPainter>
+#include <KLocale>
#include "histogramgenerator.h"
HistogramGenerator::HistogramGenerator()
}
QImage HistogramGenerator::calculateHistogram(const QSize ¶deSize, const QImage &image, const int &components,
- HistogramGenerator::Rec rec, const bool &unscaled, const uint &accelFactor) const
+ HistogramGenerator::Rec rec, bool unscaled, uint accelFactor) const
{
if (paradeSize.height() <= 0 || paradeSize.width() <= 0 || image.width() <= 0 || image.height() <= 0) {
return QImage();
const uint ww = paradeSize.width();
const uint wh = paradeSize.height();
const uint byteCount = iw*ih;
- const uint stepsize = 4*accelFactor;
+ const uint stepsize = image.depth() / 8 *accelFactor;
const uchar *bits = image.bits();
QRgb *col;
const int d = 20; // Distance for text
const int partH = (wh-nParts*d)/nParts;
- const float scaling = (float)partH/(byteCount >> 7);
+ float scaling = 0;
+ int div = byteCount >> 7;
+ if ( div > 0 )
+ scaling = (float)partH/(byteCount >> 7);
const int dist = 40;
int wy = 0; // Drawing position
}
QImage HistogramGenerator::drawComponent(const int *y, const QSize &size, const float &scaling, const QColor &color,
- const bool &unscaled, const uint &max) const
+ bool unscaled, uint max) const
{
QImage component(max, size.height(), QImage::Format_ARGB32);
component.fill(qRgba(0, 0, 0, 0));
}
void HistogramGenerator::drawComponentFull(QPainter *davinci, const int *y, const float &scaling, const QRect &rect,
- const QColor &color, const int &textSpace, const bool &unscaled, const uint &max) const
+ const QColor &color, int textSpace, bool unscaled, uint max) const
{
QImage component = drawComponent(y, rect.size() - QSize(0, textSpace), scaling, color, unscaled, max);
davinci->drawImage(rect.topLeft(), component);
const int dist = 40;
const int cw = component.width();
- davinci->drawText(0, textY, "min");
+ davinci->drawText(0, textY, i18n("min"));
davinci->drawText(dist, textY, QString::number(min, 'f', 0));
- davinci->drawText(cw-dist-30, textY, "max");
+ davinci->drawText(cw-dist-30, textY, i18n("max"));
davinci->drawText(cw-30, textY, QString::number(maxVal, 'f', 0));
}