Как поместить QImage с прозрачностью в буфер обмена для использования другим приложением? - PullRequest
1 голос
/ 11 августа 2009

У меня есть QImage, который я хотел бы поместить в буфер обмена, что я могу сделать просто отлично. Однако прозрачность теряется, когда эти данные вставляются в приложение не-Qt. Прозрачная часть выглядит просто черной. Я попытался сохранить данные в виде прозрачного PNG, но в буфере обмена ничего нельзя использовать.

Это то, что я имею до сих пор:

QImage mergedImage = mergeSelectedItems(scene->items());

QMimeData* mimeData = new QMimeData();

QByteArray data;
QBuffer buffer(&data);
buffer.open(QIODevice::WriteOnly);
mergedImage.save(&buffer, "PNG");
buffer.close();
mimeData->setData("image/png", data);

clipboard->setMimeData( mimeData );

Ответы [ 2 ]

3 голосов
/ 19 октября 2012

У меня была такая же проблема. Я заменил

mimeData-> setData ("image / png", data);

с

mimeData-> setData ("PNG", данные);

Работает в MS Office и Gimp, но не в OpenOffice.

1 голос
/ 11 августа 2009

Существует только несколько (пантомима) типов, которые хорошо работают с каждой комбинацией приложения / ОС (например, текст и растровое изображение)

РЕДАКТИРОВАТЬ: Что на самом деле означает: чтобы решить, является ли это общей проблемой или связано с вашим кодом, вы должны предоставить дополнительную информацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...