Bonjour,

J'ai créé une fonction qui agrandit une image donnée. Cette image est une QImage passée en paramètre. La fonction renvoie l'image agrandit.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
QImage MaClasse::agrandissement(QImage *img, int iCoeff)
{
    // Initialisation de Col et Lig
    int Col = ...;
    int Lig = ...;
    QImage imgTmp = QImage (QSize(Col,Lig), img->format());
    for (l : 0->Lig)
    {
        for (c : 0->Col)
        {
            QRgb ValeurCalculee = ...;
            imgTmp.setpixel(c,l, ValCalculée);
        }
    }
    return imgTmp;
}
Ce que je souhaite, c'est libérer la place mémoire utilisée pour créer l'image agrandie. Or ca ne se passe pas comme ca. A chaque fois que je passe dans la fonction, "setpixel()" fait augmenter la mémoire allouée au programme (je ne savais pas pourquoi, mais j'ai remarqué que "QImage ()" ne réservait pas la place entière pour l'image); Après tout, le programme peut réserver la mémoire comme ca lui chante.
MAIS le problème, c'est que cette place n'est pas libéré à la sortie de la fonction (je trouve ca bizarre). Comment est-ce possible? Que dois-je faire pour libérer la place ?