반응형

clipboard 로 text, image 복사하기 , 가져오기


테스트환경  : windows 7 32bit 

                   python 2.7.7

                   pywin32  218   -  win32clipboard 모듈사용위함.

                             -- http://sourceforge.net/projects/pywin32/files/?source=navbar

                   PIL 1.1.7



*** GUI 환경인 경우는 wxpython 에서 제공하는 clipboard 관련 기능 사용하는게 편함.



* clipboard 로 TEXT 복사하기

     http://stackoverflow.com/a/101167


import win32clipboard

# set clipboard data
win32clipboard.OpenClipboard()
win32clipboard.SetClipboardText('testing 123 한글 출력')
win32clipboard.CloseClipboard()



clipboard 에서 TEXT 가져오기  

     --- windows IDLE  에서는 한글 출력 정상이지만, 다른 환경에서는 테스트 못함.


import win32clipboard

# get clipboard data
win32clipboard.OpenClipboard()
data = win32clipboard.GetClipboardData()
win32clipboard.CloseClipboard()
print data



* clipboard 로 image 복사하기

http://pastebin.com/tDMiAq6F



from cStringIO import StringIO
import win32clipboard
from PIL import Image
 
def send_to_clipboard(clip_type, data):
    win32clipboard.OpenClipboard()
    win32clipboard.EmptyClipboard()
    win32clipboard.SetClipboardData(clip_type, data)
    win32clipboard.CloseClipboard()
 
filepath = 'cat.jpg'
image = Image.open(filepath)
 
output = StringIO()
image.save(output, "BMP")
# image.convert("RGB").save(output, "BMP")
data = output.getvalue()[14:]   # The file header off-set of BMP is 14 bytes.
output.close()
 
send_to_clipboard(win32clipboard.CF_DIB, data)



http://stackoverflow.com/a/24635307

   --- The file header off-set of BMP is 14 bytes.





* clipboard 에서 image 가져오기


http://stackoverflow.com/a/7045677

from PIL import ImageGrab   # windows only

im = ImageGrab.grabclipboard()

im.save('test.bmp','BMP')   # BMP 로 저장
# im.save('test.png','PNG')   # PNG 포맷으로 저장
# im.save('test.jpg','JPEG')







반응형
Posted by 자유프로그램
,