mirror of
				https://github.com/TriliumNext/Notes.git
				synced 2025-10-27 01:51:34 +08:00 
			
		
		
		
	Use the electron Clipboard module when using "Copy image to clipboard"
This commit is contained in:
		
							parent
							
								
									9220616bb5
								
							
						
					
					
						commit
						cfc32a14e0
					
				| @ -24,13 +24,23 @@ function setupContextMenu($image) { | ||||
|                 }, | ||||
|                 {title: "Copy image to clipboard", command: "copyImageToClipboard", uiIcon: "bx bx-empty"}, | ||||
|             ], | ||||
|             selectMenuItemHandler: ({command}) => { | ||||
|             selectMenuItemHandler: async ({command}) => { | ||||
|                 if (command === 'copyImageReferenceToClipboard') { | ||||
|                     imageService.copyImageReferenceToClipboard($image); | ||||
|                 } else if (command === 'copyImageToClipboard') { | ||||
|                     const webContents = utils.dynamicRequire('@electron/remote').getCurrentWebContents(); | ||||
|                     utils.dynamicRequire('electron'); | ||||
|                     webContents.copyImageAt(e.pageX, e.pageY); | ||||
|                     try { | ||||
|                         const imageUrl = $image.attr('src'); | ||||
|                         const response = await fetch(imageUrl); | ||||
|                         const blob = await response.blob(); | ||||
|                         const arrayBuffer = await blob.arrayBuffer(); | ||||
|                         const buffer = Buffer.from(arrayBuffer); | ||||
|                         const nativeImage = utils.dynamicRequire('electron').nativeImage; | ||||
|                         const clipboard = utils.dynamicRequire('electron').clipboard; | ||||
|                         const image = nativeImage.createFromBuffer(buffer); | ||||
|                         clipboard.writeImage(image); | ||||
|                     } catch (error) { | ||||
|                         console.error('Failed to copy image to clipboard:', error); | ||||
|                     } | ||||
|                 } else { | ||||
|                     throw new Error(`Unrecognized command '${command}'`); | ||||
|                 } | ||||
| @ -41,4 +51,4 @@ function setupContextMenu($image) { | ||||
| 
 | ||||
| export default { | ||||
|     setupContextMenu | ||||
| }; | ||||
| }; | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 perf3ct
						perf3ct