Я хочу загрузить изображение .png (используя OpenCV) и скопировать его в новое окно с помощью XPutImage ().Но для этого мне нужно сначала преобразовать изображение в формат XImage.
Я смог сделать XImage для .png, используя приведенный ниже фрагмент кода.Но теперь я запутался в обратном преобразовании.
Так есть ли хороший метод (или фрагмент кода) для преобразования файла png в формат XImage?
Для XPutImage (): https://tronche.com/gui/x/xlib/graphics/XPutImage.html
Mat img(ht,wd,CV_8UC3);
XImage *image = XGetImage(d, w1, 0,0 , wd, ht, AllPlanes, ZPixmap);
unsigned long rm = image->red_mask;
unsigned long gm = image->green_mask;
unsigned long bm = image->blue_mask;
for (int x = 0; x < wd; x++)
for (int y = 0; y < ht ; y++)
{
unsigned long pixel = XGetPixel(image,x,y);
unsigned char blue = pixel & bm;
unsigned char green = (pixel & gm) >> 8;
unsigned char red = (pixel & rm) >> 16;
Vec3b color = img.at<Vec3b>(Point(x,y));
color[0] = blue;
color[1] = green;
color[2] = red;
img.at<Vec3b>(Point(x,y)) = color;
}
imwrite("w1_img.png", img);