0

こんにちは、ボタンをクリックしたときに、現在実行中のアプリケーションウィンドウのスナップショットを撮る必要があります。これはコードで自動的に実行する必要があります。このために、Imlib2ライブラリを使用し、次のAPIのimlib_create_image_from_drawableおよびimlib_copy_drawable_to_imageを使用します。これはスナップショットを撮るために使用したコードですが、機能しません。事前に感謝の意を表します。

Imlib_Image buffer;
buffer = imlib_create_image_from_drawable(pixmap, 0, 0, glb.windowWidth, glb.windowHeight, 0); 
imlib_context_set_image(buffer);
imlib_copy_drawable_to_image(pixmap, 0, 0, glb.windowWidth, glb.windowHeight, 0, 0, 0);
imlib_context_set_image(buffer);
imlib_image_set_format("png");
imlib_save_image("screenshot");
imlib_free_image();
4

1 に答える 1

2

ありがとうございました。コードを修正し、Imlibライブラリを使用して実行中のアプリケーションのスナップショットを撮ることができます。上記では、ドローアブルを設定するのを忘れています。これは修正されたコードであり、正常に機能します

Imlib_Image buffer;

buffer = imlib_create_image(glb.windowWidth, glb.windowHeight); 
imlib_context_set_image(buffer);
imlib_context_set_display(display);
imlib_context_set_visual(DefaultVisual(display, 0));
imlib_context_set_drawable(window);
imlib_copy_drawable_to_image(0, 0, 0, glb.windowWidth, glb.windowHeight, 0, 0, 1);
imlib_context_set_image(buffer);
imlib_image_set_format("png");
imlib_save_image("screenshot");
imlib_free_image();
于 2013-03-19T06:57:07.607 に答える