Я работаю над сценарием, который позволяет пользователю выбрать файл (изображение) на своем компьютере, который затем обрабатывается в сценарии. Все это работает без проблем. Последняя часть скрипта создает графический интерфейс с использованием AppJar и отображает информацию, собранную из предыдущей обработки. Однако единственное, что не работает, - это отображение изображения, которое пользователь выбрал в начале, с помощью графического интерфейса. Ниже приведены фрагменты кода, отвечающего за описанные функции сверху.
Выбор файла:
Tk().withdraw()
filename = askopenfilename()
print(filename)
Tk().destroy()
Запуск графического интерфейса и добавление картинки:
app = gui()
app.setImageLocation(filename)
app.addImage(Processed_Image, filename, compound=None)
for i in range(0, extractor):
app.addLabel(f"f{number}", labels1[diction_counter])
number += 1
diction_counter += 1
app.go()
Графический интерфейс работает за исключением изображения. Возвращается следующая ошибка:
Exception: Invalid image location: /Users/xxx/Pictures/2017_10_31/IMG_5271.JPG
Я ценю любые советы по решению этой проблемы.
+++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++
UpDate:
После того, как мы попробовали решения, предложенные XanderMJ и Malte, единственное, что до сих пор не работает так, как должно, это изображение в графическом интерфейсе. Однако местоположение файла, которое было проблемой в начале, было решено с помощью кода, предложенного Malte. Тем не менее при запуске кода я получаю следующее сообщение об ошибке:
app.addImage("Analyzed", filename, compound=None)
File "/Users/XXX/anaconda3/lib/python3.6/site-packages/appJar/appjar.py", line
7118, in addImage
self._addImageObj(name, imgObj, row, column, colspan, rowspan,
compound=compound)
File "/Users/XXX/anaconda3/lib/python3.6/site-packages/appJar/appjar.py", line
7144, in _addImageObj
label.config(anchor=CENTER,
font=self._getContainerProperty('labelFont'),image=img)
File "/Users/XXX/anaconda3/lib/python3.6/tkinter/__init__.py", line 1482, in
configure
return self._configure('configure', cnf, kw)
File "/Users/XXX/anaconda3/lib/python3.6/tkinter/__init__.py", line 1473, in
_configure
self.tk.call(_flatten((self._w, cmd)) + self._options(cnf))
_tkinter.TclError: image "pyimage1" doesn't exist
Интересной частью этой ошибки является то, что изображение, которое было выбрано в начале, не называется pyimage1, а имеет такие имена, как "img_1245.jpg". Кроме того, код работает как отдельная программа без переменных в качестве имен файлов или путей. Ниже приведены части кода, которые я только что упомянул, с переменными и без них.
Этот код не вызывает проблем:
from appJar import gui
from PIL import Image, ImageTk
app = gui()
app.setImageLocation("/Users/XXX/Desktop")
app.addImage("test", "road.jpg")
app.zoomImage("test", -3)
app.go()
Этот код вызывает ранее показанную ошибку:
app = gui()
app.setImageLocation(directory)
app.addImage("Analyzed", filename)
for i in range(0, extractor):
app.addLabel(f"f{number}", labels1[diction_counter])
number += 1
diction_counter += 1
app.go()