所以这是个问题,我正在尝试获取剪贴板中的图像(任何格式),但我尝试的方法要么返回NULL,要么返回格式化的文本路径,如下所示:
我已经在谷歌上搜索过,并且也在Reddit上询问过,但我仍然无法弄清楚发生了什么。
以下是我尝试过的方法:
(1)
(3)
![enter image description here](https://istack.dev59.com/6p8EY.webp)
以下是我尝试过的方法:
(1)
const QClipboard *cb = QApplication::clipboard();
const QMimeData *md = cb->mimeData();
QListWidgetItem *item = new QListWidgetItem();
QLabel *label = new QLabel();
if (md->hasImage())
{
label->setPixmap(cb->pixmap());
ui.listWidget->setIconSize(QSize(100, 200));
ui.listWidget->addItem(item);
ui.listWidget->setItemWidget(item, label);
}
else if (md->hasText())
{
ui.listWidget->addItem(cb->text());
}
(2)
label->setPixmap(cb->image());
(3)
HBITMAP MemoryManager::ImageFomClipboard(HWND hWnd)
{
if (!OpenClipboard(hWnd))
return NULL;
HBITMAP hBitmap = (HBITMAP)GetClipboardData(CF_BITMAP);
CloseClipboard();
return hBitmap;
}
std::string MemoryManager::get_image(std::string number)
{
HWND hWnd = GetDesktopWindow();
HBITMAP hBitmap = ImageFomClipboard(hWnd);
if (hBitmap != NULL)
{
CImage image;
image.Attach(hBitmap);
image.Save(_T("C:/temp/asx.bmp"), Gdiplus::ImageFormatBMP);
}
return "C:/temp/asx.bmp";
}
(1) 第一个方法返回图像的路径。
(2) 第二个方法返回空值。
(3) 第三个方法只返回打印屏幕截图。不知道为什么,可能是因为.bmp格式。
我现在完全不知道如何解决这个问题,请帮帮我。