Removed pyperclip in the base64 single image encoding. Forgot to remove when the clipboard functions were added back in release 4.44.0. Changed docstring for clipboard_set to take bytes as well as string
This commit is contained in:
parent
2c9246ad21
commit
3eea8e3a97
|
@ -1,13 +1,13 @@
|
||||||
import PySimpleGUI as sg
|
import PySimpleGUI as sg
|
||||||
import base64
|
import base64
|
||||||
import pyperclip
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Make base64 image from a file
|
Make base64 image from a file
|
||||||
This is usually done in order to create a Base64 image for use as an Ucon or a Button image
|
This is usually done in order to create a Base64 image for use as an Ucon or a Button image
|
||||||
To use, either copy and paste the full path to the file or use the browse button to locate the file.
|
To use, either copy and paste the full path to the file or use the browse button to locate the file.
|
||||||
Once chosen, the conversion will happen automatically with the result placed on the clipboard.
|
Once chosen, the conversion will happen automatically with the result placed on the clipboard.
|
||||||
When complete, a popup window is shown that automatically closes after 1 second so you aren't bothered with having to close it
|
When complete, a popup window is shown that tells you to paste the image before closing the window. This is because of a
|
||||||
|
tkinter problem on Linux. On Windows you can close the Window, but on Linux, you'll need to keep it open until the paste completes
|
||||||
|
|
||||||
NOTE - if you're replacing your ICO file for your window with a base64 image, you will first need to convert your icon from
|
NOTE - if you're replacing your ICO file for your window with a base64 image, you will first need to convert your icon from
|
||||||
an ICO file into a PNG file. Encode the PNG file and then you'll be able to pass that value in your call to Window:
|
an ICO file into a PNG file. Encode the PNG file and then you'll be able to pass that value in your call to Window:
|
||||||
|
@ -18,6 +18,8 @@ import pyperclip
|
||||||
|
|
||||||
Input: a single image file
|
Input: a single image file
|
||||||
Output: clipboard will contain the Base64 Byte String of the source image
|
Output: clipboard will contain the Base64 Byte String of the source image
|
||||||
|
|
||||||
|
Copyright 2021 PySimpleGUI
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
@ -25,8 +27,9 @@ def convert_file_to_base64(filename):
|
||||||
try:
|
try:
|
||||||
contents = open(filename, 'rb').read()
|
contents = open(filename, 'rb').read()
|
||||||
encoded = base64.b64encode(contents)
|
encoded = base64.b64encode(contents)
|
||||||
pyperclip.copy(str(encoded))
|
sg.clipboard_set(encoded)
|
||||||
sg.popup('Copied to your clipboard!', auto_close=True, auto_close_duration=1)
|
# pyperclip.copy(str(encoded))
|
||||||
|
sg.popup('Copied to your clipboard!', 'Keep window open until you have pasted the base64 bytestring')
|
||||||
except Exception as error:
|
except Exception as error:
|
||||||
sg.popup_error('Cancelled - An error occurred', error)
|
sg.popup_error('Cancelled - An error occurred', error)
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#!/usr/bin/python3
|
#!/usr/bin/python3
|
||||||
|
|
||||||
version = __version__ = "4.47.0.2 Unreleased"
|
version = __version__ = "4.47.0.3 Unreleased"
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Changelog since 4.47.0 release to PyPI on 30 Aug 2021
|
Changelog since 4.47.0 release to PyPI on 30 Aug 2021
|
||||||
|
@ -11,6 +11,8 @@ version = __version__ = "4.47.0.2 Unreleased"
|
||||||
then you likely want all of your popups to also have it set. Now set it one time using this option. You can override by manually
|
then you likely want all of your popups to also have it set. Now set it one time using this option. You can override by manually
|
||||||
setting on a popup or window
|
setting on a popup or window
|
||||||
Added user_settings_object to return the UserSettings object that the function level interfaces use (prints nicely for example)
|
Added user_settings_object to return the UserSettings object that the function level interfaces use (prints nicely for example)
|
||||||
|
4,47.0.3
|
||||||
|
Changed docstring for set_clipboard to take str or bytes
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
@ -16944,7 +16946,7 @@ def clipboard_set(new_value):
|
||||||
need to stay running for Linux systems.
|
need to stay running for Linux systems.
|
||||||
|
|
||||||
:param new_value: value to set the clipboard to. Will be converted to a string
|
:param new_value: value to set the clipboard to. Will be converted to a string
|
||||||
:type new_value: (str)
|
:type new_value: (str | bytes)
|
||||||
"""
|
"""
|
||||||
# Create and use a temp window
|
# Create and use a temp window
|
||||||
root = tk.Tk()
|
root = tk.Tk()
|
||||||
|
@ -21865,7 +21867,7 @@ if running_trinket():
|
||||||
USE_CUSTOM_TITLEBAR = True
|
USE_CUSTOM_TITLEBAR = True
|
||||||
|
|
||||||
if tclversion_detailed.startswith('8.5'):
|
if tclversion_detailed.startswith('8.5'):
|
||||||
warnings.warn('You are running a VERY old version of tkinter {}'.format(tclversion_detailed), UserWarning)
|
warnings.warn('You are running a VERY old version of tkinter {}. You cannot use PNG formatted images for example. Please upgrade to 8.6.x'.format(tclversion_detailed), UserWarning)
|
||||||
|
|
||||||
_read_mac_global_settings()
|
_read_mac_global_settings()
|
||||||
if running_mac():
|
if running_mac():
|
||||||
|
|
Loading…
Reference in New Issue