QImage * SeamCarver::extendWidth(int w_extent){ QPolygon *ligneBest;// = listLignesMostSuitable.first(); QRgb color1,color2; QRgb ligneColor = qRgb(255,255,255); int y_ligneBest; QPoint pp; QImage *dataRet = new QImage(imgOrigine->width(),imgOrigine->height()+2+NB_LIGNES_SEAM_CARVING,imgOrigine->format()); ImageResizer *resizer = new ImageResizer; int delta_y,tmp_lect; QList<int> list_y_val; QListIterator<QPolygon *> qit(listLignesMostSuitable); for (int x=0; x < imgOrigine->width() ; x++) { qit.toFront(); list_y_val.clear(); while (qit.hasNext()) { ligneBest=qit.next(); list_y_val << (ligneBest->takeFirst()).y(); } qSort(list_y_val); list_y_val << imgOrigine->height() + 1000; y_ligneBest = list_y_val.takeFirst(); // pp=ligneBest->takeFirst(); //y_ligneBest=pp.y(); delta_y=0; for (int y=0; y < imgOrigine->height() ; y++) { color1=imgOrigine->pixel(x,y); if (y != y_ligneBest) { dataRet->setPixel(x,y+delta_y,color1); } else { dataRet->setPixel(x,y_ligneBest+delta_y,ligneColor); dataRet->setPixel(x,y_ligneBest+delta_y+2+NB_LIGNES_SEAM_CARVING,ligneColor); color2=imgOrigine->pixel(x,y+1); resizer->interpol(dataRet,x,y_ligneBest+1+delta_y,NB_LIGNES_SEAM_CARVING+1,color1,color2,false); delta_y += NB_LIGNES_SEAM_CARVING+2; } } } return dataRet; }