Je vais assombrir l'image en utilisant x lib dans Ubuntu. Voici mon code.Comment assombrir l'image en utilisant x-window lib dans linux
XImage* getCorrectedImage(Pixmap p){
int buflen, i;
XImage* img = XGetImage(g_display, p, 0, 0, g_width, g_height, AllPlanes, ZPixmap);
buflen = img->width * img->height * img->bitmap_pad/8;
for(i = 0; i < buflen; i++){
img->data[i] /= 2;
}
}
Et l'image résultat est comme ceci:
Je me demande si vous modifiez une valeur gamma en plus des valeurs RVB que vous attendez de modifier. img-> data contient plus que le triplet RGB, plus que probablement il contient 4 octets, éventuellement aussi la valeur alpha. Essayez d'utiliser XGetPixel()/XSetPixel() pour modifier les valeurs. – Bert
C'est un choix intéressant d'image pour une machine Ubuntu. Ma conjecture non-scientifique est que vous essayez de manipuler un Pixmap 8-bit couleur. BTW bitmap_pad n'est pas le nombre d'octets par pixel. –