mirror of
				https://github.com/python-pillow/Pillow.git
				synced 2025-10-31 07:57:27 +03:00 
			
		
		
		
	Do not use temporary file when grabbing clipboard on Linux
This commit is contained in:
		
							parent
							
								
									9a560c78a8
								
							
						
					
					
						commit
						97bd53392c
					
				|  | @ -15,6 +15,7 @@ | |||
| # See the README file for information on usage and redistribution. | ||||
| # | ||||
| 
 | ||||
| import io | ||||
| import os | ||||
| import shutil | ||||
| import subprocess | ||||
|  | @ -128,8 +129,6 @@ def grabclipboard(): | |||
|                 files = data[o:].decode("mbcs").split("\0") | ||||
|             return files[: files.index("")] | ||||
|         if isinstance(data, bytes): | ||||
|             import io | ||||
| 
 | ||||
|             data = io.BytesIO(data) | ||||
|             if fmt == "png": | ||||
|                 from . import PngImagePlugin | ||||
|  | @ -159,13 +158,12 @@ def grabclipboard(): | |||
|         else: | ||||
|             msg = "wl-paste or xclip is required for ImageGrab.grabclipboard() on Linux" | ||||
|             raise NotImplementedError(msg) | ||||
|         fh, filepath = tempfile.mkstemp() | ||||
|         err = subprocess.run(args, stdout=fh, stderr=subprocess.PIPE).stderr | ||||
|         os.close(fh) | ||||
|         p = subprocess.run(args, stdout=subprocess.PIPE, stderr=subprocess.PIPE) | ||||
|         err = p.stderr | ||||
|         if err: | ||||
|             msg = f"{args[0]} error: {err.strip().decode()}" | ||||
|             raise ChildProcessError(msg) | ||||
|         im = Image.open(filepath) | ||||
|         data = io.BytesIO(p.stdout) | ||||
|         im = Image.open(data) | ||||
|         im.load() | ||||
|         os.unlink(filepath) | ||||
|         return im | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	Block a user