gpt4 book ai didi

c++ - 有谁知道我是否可以使用 CImg 和 C++ 在图像窗口上绘图?

转载 作者:太空宇宙 更新时间:2023-11-04 12:39:53 27 4
gpt4 key购买 nike

我正在尝试使用 CImg 库和 C++ 从图像窗口获取用户输入。我希望用户在显示的窗口上绘制一个形状,以便我以后可以保存和使用他们的数据,但我还没有找到任何与我正在尝试做的相似的东西。我只是想知道是否有可能。

最佳答案

基本上,您需要像这样设置来捕获鼠标点击:

#include <iostream>
#include "CImg.h"

using namespace cimg_library;

int main(int argc,char **argv) {

// Load a background image
CImg<unsigned char> src("image.jpg");

unsigned char red[]={255,0,0};

// Display it
CImgDisplay disp(src,"Image");

// Remember position of last mouse click
int prev_x = -1;
int prev_y = -1;

// Main display loop
while (!disp.is_closed() && !disp.is_keyQ() && !disp.is_keyESC()) {

CImgDisplay::wait(disp);

// When clicking on the image
if (disp.button()) {
int x = disp.mouse_x();
int y = disp.mouse_y();
std::cout << "x: " << x << ", y: " << y << std::endl;
if(prev_x!=-1){
src.draw_line(prev_x,prev_y,x,y,red).display(disp);
}
prev_x = x;
prev_y = y;
}
}
}

enter image description here

每次用户点击时,您都可以将 x,y 位置附加到 std::vector 中,以便记住它们。据推测,您可能希望在每次点击时检查当前点击位置是否在起始位置的几个像素以内,如果是,则关闭多边形、填充它并将其添加到一些形状列表中。

关于c++ - 有谁知道我是否可以使用 CImg 和 C++ 在图像窗口上绘图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54726456/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com