Bilddaten zur Zwischenablage des Betriebssystems hinzugefügt und von dort abgerufen werden können.
Bei der Suche nach einer plattformübergreifenden Lösung zum Ersetzen oder Abrufen von Zwischenablagetext in Python
gab es viele einfache Antworten dafür (z. B. die Verwendung des integrierten Tkinter-Moduls mit etwas Code).
Diese Methoden könnten jedoch nur einfachen Text verwenden, keine anderen Zwischenablagedaten wie Bilder.
Meine Version von Python ist 3.x unter Windows, aber die Antwort muss plattformübergreifend sein
(funktioniert auf verschiedenen Betriebssystemen) und sollte auch andere Python-Versionen wie 2.x unterstützen.
Ich denke, es sollte nur integrierte Python-Module verwenden und der Code sollte nicht zu komplex sein (oder eine Erklärung für seine Funktion enthalten). Es kann sich um ein Python-Modul handeln, da die Dateien im selben Ordner wie tragbarer Programmcode enthalten sein können, um eine Installation zu vermeiden.
Es gibt einige andere verwandte Fragen zu dieser Frage, die wahrscheinlich für Bilder funktionieren, aber nur ein einzelnes Betriebssystem unterstützen. Die besten waren „Bild in die Zwischenablage kopieren in Python3“ und „Bild in die Windows-Zwischenablage schreiben in Python mit PIL und win32clipboard?“.
Die dort beschriebenen Methoden (nur für Windows) scheinen die folgenden Schritte zu verwenden:
- Rohbinärdaten des Bildes abrufen – die Methode lädt eine Bilddatei mit dem Python Imaging
Bibliotheksmodul (PIL/Pillow), da dieses über andere verfügt Verarbeitungsfunktionen, die später verwendet werden, in einer einfachen
und beliebten Standard-API. Dies könnte stattdessen mit einem anderen Modul erfolgen (z. B. Pygame). - Erstellen Sie eine Dateiobjektvariable (für In-Memory-Input-/Output-Streaming) mit dem integrierten io
Modul. Für Python 2.x wird aus cStringIO import StringIO verwendet, aber mit Python 3 wird der
bessere binäre Stream-Objekttyp io.BytesIO verwendet – die älteren erlauben jetzt nur Text. - Speichern Sie die Bilddaten im BMP-Dateiformat (Windows Bitmap/Device Independent Bitmap)
in der Dateiobjektvariablen aus dem vorherigen Schritt. Die Methode, die PIL/Pillow verwendet, konvertiert zunächst
diese Daten mit .convert("RGB") für die Variable, die sie enthält. - Erhalten Sie den vollständigen Inhalt des Variablenspeicherpuffers des Dateiobjekts als Binärdaten (-Objekt),
Code: Select all
bytes
schneiden Sie es ab Position 14 in Scheiben, um den 14-Byte-Header des BMP/DIB-Dateiformats zu entfernen, und speichern Sie es dann
als Variable. Die Methode besagt, dass das Slicing dieser Daten auf 32- oder 64-Bit-Systemen funktioniert, aber
benötigt die Windows-Zwischenablage-API und funktioniert daher nicht für ein anderes Dateiformat. - Schließen Sie den Speicherpuffer und kopieren Sie die Bilddaten aus dem vorherigen Schritt in die Zwischenablage.
Die Methode führt dies unter Windows mithilfe des win32clipboard-Teils eines Erweiterungsmoduls aus –
sie öffnet die Zwischenablage zur Verwendung, löscht es, setzt seinen Wert auf die Bilddatenvariable aus
dem vorherigen Schritt (unter Verwendung des BMP/DIB-Typs) und schließt dann die geöffnete Zwischenablage.
nur eine einzelne Datei für Version 1.5.6 ist und möglicherweise Code enthält, der verarbeitet werden kann Bilddaten.
Mobile version