2016-12-30 15 views
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; 
    } 
} 

そして、結果画像は、このようなものです:

Image

+0

あなたが変更する予定のRGB値に加えてガンマ値を変更しているのだろうかと思います。 img-> dataにはRGBトリプル以上のものが含まれている可能性があります。これにはおそらく4バイト、場合によってはアルファ値も含まれています。 XGetPixel()/ XSetPixel()を使って値を変更してみてください。 – Bert

+0

これはUbuntuマシンにとって興味深い画像の選択です。非科学的な推測では、あなたは理想的な色の8ビットPixmapを操作しようとしています。 BTW bitmap_padは1ピクセルあたりのバイト数ではありません。 –

答えて

0

それは、カラーモードでの問題です。それは24ビットカラーモードではありません あなたは16ビットカラーモードを使用する必要があります

+0

それは面白いです。あなたは24ビットモードを意味しますか? –

関連する問題