Avatar billede jonasq1 Mester
11. december 2022 - 12:41

Problem med åbning a fil

Jeg er ved at programmere et program som skal kunne plotte alle mine billeder samt vise dem så jeg kan se dem når jeg trykker. problemet er at den ik vil åbne alle mine billeder eller den vil kun gøre det med et af billederne men den plotter dem alle. nogle råd? den skal kunne plotte fra en specifik sti altså C:...



import openpyxl
import os
import sys
from tkinter import Tk, filedialog #Her importere vi vores fildialog så vi kan vælge filer.
import folium
from folium import IFrame
import base64
import re
import PIL.Image

m = folium.Map(location=[56,11], zoom_start=7)



print("Initialize program...\n") #Her printer vi så brugeren kan se at programmet er sat til at køre.
root = Tk() # pointing root to Tk() to use it as Tk() in program. (Det skal skrives ny tekst til denne)
root.withdraw() # Hides small tkinter window. (Det skal skrives ny tekst til denne)
root.attributes('-topmost', True) # Opened windows will be active. above all windows despite of selection. (Det skal skrives ny tekst til denne)
print("Waiting for user input.\n") #Her printer vi så brugeren ved at programmet venter på dem.
Fil_Placering = filedialog.askdirectory() #Her definere vi Fil_Placering til at være den mappe vi får i output fra fildialogen
if Fil_Placering == "":
    print("Ingen sti valgt.")
    sys.exit()
print("Den valgte mappe er: "+Fil_Placering+"\n") #Her printer vi så brugeren kan se den mppe de har valgt.

MappeListe = os.listdir(Fil_Placering) #Her laver vi en liste med alle de filer som er i den mappe som vi skal sortere filer i
FailCount=0
File_counter = 0


#######################
for photo in MappeListe:
    chek = os.path.join(Fil_Placering,photo)

    if photo.endswith(".jpg"):
        File_counter += 1
        img = PIL.Image.open(chek)
        import PIL.ExifTags

        exif = {
            PIL.ExifTags.TAGS[k]: v
            for k, v in img._getexif().items()
            if k in PIL.ExifTags.TAGS
        }

        if "GPSInfo" in exif:
            north = exif["GPSInfo"][2]
            east = exif["GPSInfo"][4]


            lat = ((((north[0] *60)+north[1]) *60)+ north[2])/60/60
            long = ((((east[0] *60)+east[1]) *60)+ east[2])/60/60

            lat, long = float(lat), float(long)

            ###########################################################
           
            tooltip = "klik for at se billede."
            html = '<img src="data:image/png;base64,{}">'.format
            picture1 = base64.b64encode(open(chek,'rb').read()).decode()
            iframe1 = IFrame(html(picture1), width=600+20, height=400+20)
            popup1 = folium.Popup(iframe1, max_width=650)
            marker1 = folium.Marker(location=[lat,  long], popup=popup1, tooltip=tooltip).add_to(m)




        else:
            FailCount += 1

    else:
        FailCount += 1
m.save("index.html")
print("Filer i mappen: "+str(File_counter))
print("Filer der ikke kunne plottes: "+str(FailCount))
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester