見出し画像

WindowsのクリップボードにPNGをコピペする#2 ~Python x win32clipboardでPNGコピペする方法を調査してみた~

割引あり

こんにちは、Rcatです。
前回の記事で、PNG画像をコピペしたい場合、バイナリがWindowsのクリップボードに入っていることまでは分かりました。
今回はそれを読み出すことと、そしてPythonから書き込むところをやっていきます。
書き込み後はパワポとnote(Chromeブラウザ)に対して貼り付け出来ることをターゲットとします。
※調査であるため、結果は出るが過程が正しいかは分からないため。

また、出来上がったPNG読み書き用のクラスも配布しております。

前回はこちら。



はじめに

利用規約

情報や作品の活用時は事前に利用規約をご確認ください。

コメントについて

利用規約のガイドラインを確認の上コメントしてください


PNGらしきデータをPythonで読み込む

読み込むデータの確認

まずは前回のデータを見ていきます。
こちらがクリップボード上のデータで、この中のPNGと書いてあるこれを読み込んでみようと思います。

ID:49161   Name:DataObject           Value:b'8\x08\x0f\x00'
ID:49401   Name:Preferred DropEffect Value:b'\x00\x00\x00\x00'
ID:49406   Name:InShellDragLoop      Value:b'\x00\x00\x00\x00'
ID:49166   Name:Object Descriptor    Value:b'd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
ID:49893   Name:PowerPoint 12.0 Internal Theme Value:b',\x1a\xec%'
ID:49894   Name:PowerPoint 12.0 Internal Color Scheme Value:b'0\x1a\xec%'
ID:49877   Name:PowerPoint 12.0 Internal Shapes Value:b'|\x18\xec%'
ID:49819   Name:Art::GVML ClipFormat Value:b'PK\x03\x04\x14\x00\x06\x00\x08\x00\x00\x00!\x00\xbb\xe5H\x94\x05\x01'
ID:49757   Name:image/svg+xml        Value:b'<svg width="455" hei'
ID:49355   Name:PNG                  Value:b'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x02\xc8'
ID:49354   Name:JFIF                 Value:b'\xff\xd8\xff\xe0\x00\x10JFIF\x00\x01\x01\x01\x00x\x00x\x00\x00'
ID:49353   Name:GIF                  Value:b'GIF89a\xc7\x01u\x01p\x00\x00!\xf9\x04\x05\x00\x00\n'
ID:2       Name:CF_BITMAP            Value:1510281192
ID:14      Name:CF_ENHMETAFILE       Value:b'\x01\x00\x00\x00l\x00\x00\x00\xe3\xff\xff\xff\xe3\xff\xff\xff<\x0b\x00\x00'
2025-03-30 14:54:06,471 ERROR クリップボード (6, 'GetClipboardData:GetMetafileBitsEx(NULL)', 'ハンドルが無効です。')
ID:3       Name:CF_METAFILEPICT      Value:None
ID:49171   Name:Ole Private Data     Value:b'\x00\x00\x00\x00\xf8\x01\x00\x00\x01\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x00\x00'
ID:8       Name:CF_DIB               Value:b'(\x00\x00\x00\xc7\x01\x00\x00u\x01\x00\x00\x01\x00 \x00\x03\x00\x00\x00'
ID:17      Name:CF_DIBV5             Value:b'|\x00\x00\x00\xc7\x01\x00\x00u\x01\x00\x00\x01\x00 \x00\x03\x00\x00\x00'

では、本当にPythonに読み込めるのか確認してみます。
読み込むには次のソースコードを使います。

ここから先は

4,632字 / 12画像
この記事のみ ¥ 300〜

普段の開発のうち、プランに応じて情報やツールのダウンロード情報などが読み放題。 今後はAI対策で画像…

Lv1

¥300 / 月

情報が役に立ったと思えば、僅かでも投げ銭していただけるとありがたいです。