1
私はUbuntuでx libを使って画像を暗くするつもりです。ここに私のコードです。linuxでx-window libを使って画像を暗くする方法
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;
}
}
そして、結果画像は、このようなものです:
あなたが変更する予定のRGB値に加えてガンマ値を変更しているのだろうかと思います。 img-> dataにはRGBトリプル以上のものが含まれている可能性があります。これにはおそらく4バイト、場合によってはアルファ値も含まれています。 XGetPixel()/ XSetPixel()を使って値を変更してみてください。 – Bert
これはUbuntuマシンにとって興味深い画像の選択です。非科学的な推測では、あなたは理想的な色の8ビットPixmapを操作しようとしています。 BTW bitmap_padは1ピクセルあたりのバイト数ではありません。 –