Ошибка с Base64 кодирования фото с Python
Я использую этот код для выполнения проекта, но он не может быть запущен, потому что у него есть проблема со строкой, которая имеет base64.b64encode
,
У меня есть две посылки. Я добавил код ниже.
Пакет 1
import os
from GPSPhoto import gpsphoto
points = []
path = "C:/Users/Lenovo/Desktop/H"
for r, d, f in os.walk(path):
for file in f:
if file.lower().endswith(('.png', '.jpg', '.jpeg')):
filepath = os.path.join(r, file)
exif = gpsphoto.getGPSData(filepath)
print(os.path.splitext(os.path.basename(filepath))[0])
for tag in exif.keys():
print(tag, exif[tag])
print('\n')
if exif is not None and 'Latitude' in exif:
lat = float("{0:.5f}".format(exif['Latitude']))
lon = float("{0:.5f}".format(exif['Longitude']))
geodata = [file, lat, lon, exif['Date']]
if geodata is not None:
points.append(geodata)
Пакет 2
import folium
import base64
map = folium.Map(location=[7.12, 100.35], zoom_start=12)
folium.LayerControl().add_to(map)
for coord in points:
# Create IFrame for Image
encoded = base64.b64encode(open(coord[0],'rb').read()).decode() #it has problem
html = '<img src="data:image/jpeg;base64,{}">'.format
iframe = folium.IFrame(html(encoded), width=512 + 20, height=320 + 20)
# Define Map Popup & Icon
popup = folium.Popup(iframe, max_width=800)
icon = folium.Icon(color="red", icon="circle")
# Create Marker
marker = folium.Marker([coord[1], coord[2]], popup=popup, icon=icon)
marker.add_to(map)
map.save(outfile='GPS_MAP.html')
Результат показывает это сообщение об ошибке:
Traceback (most recent call last):
File "C:/Users/Lenovo/.PyCharmCE2019.2/config/scratches/scratch_2.py", line 38, in <module>
encoded = base64.b64encode(open(coord[0],'rb').read()).decode()
FileNotFoundError: [Errno 2] No such file or directory: 'IMG_1299.JPG'