QPixmap ImageFilter::operator ()(QPixmap sourcePixmap, Filter::FilterType filter, int delta) { QImage origin(sourcePixmap.toImage()); switch (filter) { case Filter::Gray_Scale: return grayScale(origin); break; case Filter::Brightness: return brightness(origin, delta); break; case Filter::Temperature: return temperature(origin, delta); break; case Filter::Saturation: return saturate(origin, delta); break; case Filter::Blur: return blur(origin); break; case Filter::Sharpen: return sharpen(origin); break; case Filter::Sepia: return sepia(origin); break; } }
int MainWindow::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QMainWindow::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { switch (_id) { case 0: openFile(); break; case 1: applyChanges(); break; case 2: saveFile(); break; case 3: exit(); break; case 4: effects(); break; case 5: zoom(); break; case 6: resize(); break; case 7: crop(); break; case 8: rotateRight(); break; case 9: rotateLeft(); break; case 10: mirror(); break; case 11: reflection(); break; case 12: grayScale(); break; case 13: xray(); break; case 14: sepia(); break; default: ; } _id -= 15; } return _id; }
void filter(t_rt *rt) { if (rt->eye->filter == 3) negative(rt); else if (rt->eye->filter == 2) black_and_white(rt); else if (rt->eye->filter == 1) sepia(rt, 0); }
/* Donne dans le tp. Par la suite, on n'utilise plus cette fonction */ int copier_bmp(int de, int vers){ unsigned char *pixels; entete_bmp entete; /* lecture du fichier source */ lire_entete(de, &entete); pixels = allouer_pixels(&entete); lire_pixels(de, &entete, pixels); /* écriture du fichier destination */ rouge(&entete, pixels); negatif(&entete, pixels); moitie(&entete, pixels,1); sepia(&entete, pixels); noir_et_blanc(&entete, pixels); ecrire_entete(vers, &entete); ecrire_pixels(vers, &entete, pixels); /* on libère les pixels */ free(pixels); return 1; /* on a réussi */ }
int main(int argc, char **argv) { /* Pas d'argument */ if (argc == 1) usage(argv[0]); /* Initialisation */ int c; char *nom = NULL; int de = open("lena.bmp", O_RDONLY); entete_bmp entete; unsigned char *pixels; if (de < 0){ printf("erreur fichier entree\n"); exit(EXIT_FAILURE); }else{ /* Lecture du fichier source */ lire_entete(de, &entete); pixels = allouer_pixels(&entete); lire_pixels(de, &entete, pixels); } while ((c = getopt(argc, argv, "rnbmia")) != -1) { switch (c) { case 'r': rouge(&entete, pixels); break; case 'n': negatif(&entete, pixels); break; case 'b': noir_et_blanc(&entete, pixels); break; case 'm': moitie(&entete, pixels, 1); break; case 'i': moitie(&entete, pixels, 0); break; case 'a': sepia(&entete, pixels); break; default : tuto(argv[0]); break; } } /* Lecture de l'option facultative (nom fichier) */ int index; for (index = optind; index < argc; index++) { if (nom == NULL) nom = argv[index]; else printf ("L'option %s a été ignoré.\n", argv[index]); } /* On écrit dans le fichier de destination */ int vers; if (nom == NULL) vers = open("lena_out.bmp", O_WRONLY | O_CREAT, 0644); else vers = open(nom, O_WRONLY | O_CREAT, 0644); if (vers < 0){ printf("erreur fichier sortie\n"); exit(EXIT_FAILURE); }else{ /* Écriture du fichier destination */ ecrire_entete(vers, &entete); ecrire_pixels(vers, &entete, pixels); } /* On libère les pixels */ free(pixels); return EXIT_SUCCESS; }