我已经创建了一个gif使用枕头从一些图像和我试图复制这个gif存储为一个BytesIO对象剪贴板保存到一个gif图像的演示。下面的代码;其中imageList =[]是一个图像文件名列表。 从python中复制gif到剪贴板的任何方法都有帮助吗?谢谢
def copyGif(self):
imageList = []
gif = BytesIO()
imageList[0].save(gif, format='GIF', save_all=True, append_images=imageList[1:], optimize=False, duration=1000,
loop=0)
win32clipboard.OpenClipboard()
win32clipboard.EmptyClipboard()
win32clipboard.SetClipboardData(win32clipboard.CF_DIB, gif.getvalue())
win32clipboard.CloseClipboard()
问题来源StackOverflow 地址:/questions/59380396/copy-pillow-gif-to-windows-clipboard
试一试:
import sys
from PyQt5.Qt import *
class MainWindow(QMainWindow):
def __init__(self, parent=None):
super(MainWindow, self).__init__(parent)
self.setGeometry(50, 50, 600, 600)
# Create a URL.
url1 = QUrl.fromLocalFile('Loader.gif')
url2 = QUrl.fromLocalFile('animated-dancing-image-0028.gif')
# Create MIME data with URL.
mime_data = QMimeData()
mime_data.setUrls([url1, url2])
self.labelList = [ i for i in range(len([url1, url2]))]
# Copy the MIME data to the clipboard.
clipboard = QApplication.clipboard()
clipboard.setMimeData(mime_data)
cm = clipboard.mimeData()
for i, m in enumerate(cm.urls()):
self.labelList[i] = QMovie(m.toLocalFile())
self.labelList[i].frameChanged.connect(self.repaint)
self.labelList[i].start()
def paintEvent(self, event):
currentFrame1 = self.labelList[0].currentPixmap()
currentFrame2 = self.labelList[1].currentPixmap()
frameRect2 = currentFrame2.rect()
frameRect2.moveCenter(self.rect().center())
if frameRect2.intersects(event.rect()):
painter = QPainter(self)
painter.drawPixmap(frameRect2.left(), frameRect2.top(), currentFrame2)
frameRect1 = currentFrame1.rect()
frameRect1.moveCenter(self.rect().center())
if frameRect1.intersects(event.rect()):
painter.drawPixmap(frameRect1.left(), frameRect1.top(), currentFrame1)
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = MainWindow()
ex.show()
QTimer.singleShot(10000, app.quit)
sys.exit(app.exec_())
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。