anche questo codice mi piace ....
int main(int argc, char** argv)
{
QApplication app(argc, argv);
QPixmap pixmap("logo.png");
QImage image = pixmap.toImage();
QRgb col;
QMap<QRgb,int> rgbcount;
QRgb greatest = 0;
int width = pixmap.width();
int height = pixmap.height();
int count = 0;
for (int i = 0; i < width; ++i)
{
for (int j = 0; j < height; ++j)
{
col = image.pixel(i, j);
if (rgbcount.contains(col)) {
rgbcount[col] = rgbcount[col] + 1;
}
else {
rgbcount[col] = 1;
}
if (rgbcount[col] > count) {
greatest = col;
count = rgbcount[col];
}
}
}
qDebug() << count << greatest;
return app.exec();
}
interessante il metodo: rgbcount.contains(col) che dato un valore, ci dice se e' presente nella matrice e' veramente utile e penso sia lo stesso di .Exist dei vettori in gambas.
mi piace che nella scansione sia fatto contemporaneamente lo "stacking" dei colori e l'indicizzazione di quello che e' piu' presente.
in questo modo si mantiene la linearita' del metodo (x*y)
L'unico problema e' che contrariamente a python, se uso un vettore "generico", non posso usare come indice un valore che nel vettore NON esiste gia' ....