当前位置: 首页 > news >正文

为图片设置经纬度信息

一、java实现
小编看了很多技术博客,但是测试要么下载的jar包中的api和博客对不上,要么就是不对,总之没实现
Java 读取图片信息
java 写入 exif 信息
使用Java读取和修改图片的Exif信息
java获取图片的GPS信息
https://drewnoakes.com/code/exif/
https://github.com/drewnoakes/metadata-extractor/
java 修改图片exif信息
JAVA 使用metadata-extractor添加水印
java 修改照片exif信息
ava图片识别文字软件 java识别图片文字 原理
java 修改图片exif信息
如何用一张照片进行GPS定位
https://www.jb51.net/program/319520ppk.htm
https://blog.csdn.net/qq_40985985/article/details/118605888
https://blog.51cto.com/u_16213361/10406427
https://blog.csdn.net/m0_51363655/article/details/125554155
https://blog.csdn.net/weixin_42350212/article/details/118467097
二、python实现
引用给家里的老照片添加时间、地点信息,方便查找回忆

from PIL import Image, ImageTk
from piexif import load, dump, ImageIFD,GPSIFD
import tkinter as tk
from tkinter import filedialog, messagebox
import pyperclipdef open_file():print("打开文件 start")file_path = filedialog.askopenfilename(title='选择图片文件')# file_path = 'C:/Users/hahaha/Pictures/IMG_1089.JPG'print(file_path)img = Image.open(file_path)img = img.resize((400, 300))img = ImageTk.PhotoImage(img)lable_img_display.config(image=img)lable_img_display.image = imgif file_path:print("打开文件:", file_path)# 打开图片image = Image.open(file_path)img_name_old_label.config(text=file_path)# 读取图片的原始exif信息'try:exif_dic = load(image.info["exif"])image_time = exif_dic["0th"][ImageIFD.DateTime]print(image_time)img_time_old_label.config(text=image_time)if exif_dic["GPS"]:longtitude = exif_dic['GPS'][GPSIFD.GPSLongitude] # 经度print(format_data(longtitude))img_longtitude_old_label.config(text=format_data(longtitude))latitude = exif_dic["GPS"][GPSIFD.GPSLatitude]print(format_data(latitude))img_latitude_old_label.config(text=format_data(latitude)) # 纬度print(longtitude)print(latitude)print(format_data(format_data(longtitude)))else:print("无GPS信息")img_longtitude_old_label.config(text="none")img_latitude_old_label.config(text="none")passexcept:img_time_old_label.config(text="none")img_longtitude_old_label.config(text="none")img_latitude_old_label.config(text="none")def format_data(latlong):print(type(latlong))if type(latlong) == float or type(latlong) == str or type(latlong) == int:latlong = float(latlong)degree = int(latlong)res_degree = latlong - degreeminute = int(res_degree * 60)res_minute = res_degree * 60 - minuteseconds = round(res_minute * 60, 3)_data = ((degree, 1), (minute, 1), (int(seconds * 100), 100))return _dataelif type(latlong) == tuple:_date = latlong[0][0]+latlong[1][0]/60+latlong[2][0]/60/6000return _datedef save_file():file_path = filedialog.asksaveasfilename()if file_path:print("保存文件:", file_path)def modify_exif():print('修改图片的exif信息')# 打开图片image_path = img_name_old_label.cget("text")image = Image.open(image_path)# 读取图片的原始exif信息try:exif_data = load(image.info["exif"])except:exif_data = {}if '0th' not in exif_data:  # 判断是否存在基础信息 并创建基础信息exif_data['0th'] = {}if len(exif_data['0th']) == 0:exif_data['0th'] = {271: b'QRJ', #制造商272: b'scanner',#型号# 274: 1, # 图像方向# 282: (72, 1), #ImageWidth 方向上每个 ResolutionUnit 的像素数# 283: (72, 1), #ImageLength方向上每个 ResolutionUnit 的像素数# 296: 2, #XResolution 和 YResolution 的测量单位。305: b'IMG_EDITv1', #用于创建映像的软件包的名称和版本号。306: b'2000:00:00 00:00:00', # 创建时间# 531: 1,# 指定子采样色度分量相对于亮度样本的位置。# 34665: 208,# 34853: 1786}exif_data['0th'][ImageIFD.DateTime] = img_time_new_text.get()  # 创建基础exif空字典if 'GPS' not in exif_data: # 判断是否存在基础GPS信息 并创建GPS基础信息exif_data['GPS'] = {} # 创建gps空字典if len(exif_data['GPS']) == 0:exif_data['GPS'] = {1: b'N', # 南北纬2: ((40, 1), (6, 1), (2386, 100)), # 纬度3: b'E', #东西经4: ((116, 1), (32, 1), (5287, 100)), # 经度# 5: 0, #表示作为参考高度的高度# 6: (13973, 415), #根据 GPSAltitudeRef 中的参考值指示高度# 7: ((4, 1), (5, 1), (4760, 100)), #表示时间为 UTC(协调世界时)。# 12: b'K', #表示用于表示 GPS 接收器移动速度的单位。# 13: (0, 1), #表示GPS接收器移动的速度# 16: b'T', #表示在捕获图像时给出图像方向的参考。# 17: (10159, 338), #表示图像拍摄时的方向。# 23: b'T', #表示用于给目标点方位的参考。# 24: (10159, 338), #表示到目的地的方位。# 29: b'2000:00:00', #一个字符串,记录相对于 UTC(协调世界时)的日期和时间信息。# 31: (65, 1) #指示是否对 GPS 接收器应用差分校正。}# if GPSIFD.GPSLongitude not in exif_data['GPS']:
#     exif_data['GPS'][GPSIFD.GPSLongitude] = []  # 创建gps空列表if img_longtitude_new_text.get() == '':messagebox.showinfo("提示", "请输入经度")returnexif_data['GPS'][GPSIFD.GPSLongitude] = format_data(img_longtitude_new_text.get()) # 更新经度
# if GPSIFD.GPSLatitude not in exif_data['GPS']:
#     exif_data['GPS'][GPSIFD.GPSLatitude] = []if img_latitude_new_text.get() == '':messagebox.showinfo("提示", "请输入纬度")returnexif_data['GPS'][GPSIFD.GPSLatitude] = format_data(img_latitude_new_text.get()) # 更新纬度########################EXIF信息################################if 'Exif' not in exif_data:  # 判断是否存在Exif信息 并创建Exif信息exif_data['Exif'] = {}if len(exif_data['Exif']) == 0:exif_data['Exif'] = {# 33434: (1, 400),# 33437: (22, 10),# 34850: 3,# 34855: 100,# 34864: 2,# 34866: 100,# 36864: b'0230',36867: b'2022:10:30 17:01:01',# 36868: b'2022:10:30 17:02:02',# 37121: b'\x01\x02\x03\x00',# 37377: (565248, 65536),# 37378: (155648, 65536),# 37380: (0, 1),# 37383: 5,# 37385: 16,# 37386: (50, 1),# 42037: b'0000205042\x00'}exif_data['Exif'][36867] = img_time_new_text.get()  # 创建Exif时间信息#############Interop信息######################################## if 'Interop' not in exif_data:#     exif_data['Interop'] = {}# if len(exif_data['Interop']) == 0:#     exif_data['Interop'] = {1: b'R98'}##################1st############### if '1st' not in exif_data:#     exif_data['1st'] = {}# if len(exif_data['1st']) == 0:#     exif_data['1st'] = {#         259: 6,#         282: (72, 1),#         283: (72, 1),#         296: 2,#         513: 8916,#         514: 14640#     }# 修改原始exif信息# exif_data.update(new_exif_dict)exif_bytes = dump(exif_data)# 设置新的exif信息image.save(image_path, exif=exif_bytes)def paste_location():# TODO: 从剪贴板中粘贴经纬度gps_info=pyperclip.paste()print(gps_info)if ',' in gps_info:gps_info = gps_info.split(',')img_longtitude_new_text.insert(tk.END, gps_info[0])img_latitude_new_text.insert(tk.END, gps_info[1])passif __name__ == '__main__':# TODO: 实现GUI或者命令行接口,让用户选择操作root = tk.Tk()root.title("文件对话框")root.geometry("600x500")img_info_frame = tk.Frame(root)img_info_frame.pack(pady=20)img_name_label = tk.Label(img_info_frame, text="图片名称")img_name_label.grid(row=0, column=0)img_name_old_label = tk.Label(img_info_frame, text="原图片")img_name_old_label.grid(row=0, column=1)img_time_label = tk.Label(img_info_frame, text="图片时间")img_time_label.grid(row=1, column=0)img_time_old_label = tk.Label(img_info_frame, text="原图片时间")img_time_old_label.grid(row=1, column=1)img_time_new_text = tk.Entry(img_info_frame, width=20)img_time_new_text.grid(row=1, column=2)img_time_new_text.insert(tk.END, "2018:02:02 21:44:35")# img_time_new_text.config(state=tk.DISABLED)img_longitude_label = tk.Label(img_info_frame, text="经度")img_longitude_label.grid(row=2, column=0)img_longtitude_old_label = tk.Label(img_info_frame, text="原经度")img_longtitude_old_label.grid(row=2, column=1)img_longtitude_new_text = tk.Entry(img_info_frame, width=20)img_longtitude_new_text.grid(row=2, column=2)img_latitude_label = tk.Label(img_info_frame, text="纬度")img_latitude_label.grid(row=3, column=0)img_latitude_old_label = tk.Label(img_info_frame, text="原纬度")img_latitude_old_label.grid(row=3, column=1)img_latitude_new_text = tk.Entry(img_info_frame, width=20)img_latitude_new_text.grid(row=3, column=2)button_frame = tk.Frame(root,width=600,height=50)button_frame.pack()open_button = tk.Button(button_frame, text="打开单独文件", command=open_file)open_button.grid(row=4, column=2)save_button = tk.Button(button_frame, text="保存文件", command=save_file)save_button.grid(row=4, column=3)modify_button = tk.Button(button_frame, text="修改exif", command=modify_exif)modify_button.grid(row=4, column=4)paste_button = tk.Button(button_frame, text="粘贴经纬度", command=paste_location)paste_button.grid(row=4, column=5)website_text = tk.Text(root, width=54, height=1)website_text.pack()website_text.insert(tk.END, "https://api.map.baidu.com/lbsapi/getpoint/index.html")lable_img_display = tk.Label(root,width=400,height=300)lable_img_display.pack()#webview2 创建坐标浏览页面# web_view = tk.root.mainloop()pass

引用单反相机照片用python 脚本添加gps位置信息
三方依赖库

pip install piexif
pip install pywin32
pip install Pillow
pip install pyinstaller
# ecoding:utf-8
import os
from PIL import Image
import piexif
import win32con
import win32ui
import ctypes"""
安装第三方包
pip install piexif
pip install pywin32
pip install Pillow
pip install pyinstaller
打包命令:pyinstaller -F -i .\gps.ico .\gps.py
"""# DIP缩放设置
awareness = ctypes.c_int()
errorCode = ctypes.windll.shcore.GetProcessDpiAwareness(0, ctypes.byref(awareness))
errorCode = ctypes.windll.shcore.SetProcessDpiAwareness(2)
success = ctypes.windll.user32.SetProcessDPIAware()def main():image_path = browse(True)[1]gps_str = input('请输入经纬度:')arr = gps_str.split(',')lng = float(arr[1])lat = float(arr[0])# 将经纬度与相对航高转为exif可用的经纬度与行高# exif需要的航高输入为(20000,2)格式,表示高度为20000/100米# exif需要的经度与维度为((12, 1), (20,1), (41000, 1000))格式表示12度20分41秒lng_exif = format_latlng(lng)lat_exif = format_latlng(lat)_dict = {"lng": lng_exif, "lat": lat_exif, "lng_ref": 'E', "lat_ref": 'N'}print("写入文件:", image_path)# 判断图片是否有exifread_check_exif(image_path)# 修改图片的exifread_modify_exif(image_path, _dict)def browse(mode: bool,default_name: str = "",title: str = "选择您的文件",file_type: str = "图片文件(*.jpg)|*.jpg|",path: str = "desktop"):"""弹出窗口返回保存或者选择的路径:param mode: False"为 "保存/另存为", "True"为 "打开":param default_name:默认输入文件名:param title:窗口提示:param file_type:可选的文件类型,所有文件(*.*)|*.*|图片文件(*.jpg)|*.jpg|:param path::return:[存储类型、文件路径、文件类型]"""api_flag = win32con.OFN_OVERWRITEPROMPT | win32con.OFN_FILEMUSTEXISTdlg = win32ui.CreateFileDialog(mode, None, default_name, api_flag, file_type)dlg.SetOFNTitle(title)dlg.SetOFNInitialDir(os.path.abspath(path))dlg.DoModal()filename = dlg.GetPathName()fileExt = dlg.GetFileExt()if os.path.exists(filename):if_pass = Trueelif not mode:if os.path.split(filename)[0] == '':if_pass = Falseelse:if_pass = Trueelse:if_pass = Falsereturn [if_pass, filename, fileExt]def format_latlng(latlng):"""经纬度十进制转为分秒"""degree = int(latlng)res_degree = latlng - degreeminute = int(res_degree * 60)res_minute = res_degree * 60 - minuteseconds = round(res_minute * 60.0, 3)return ((degree, 1), (minute, 1), (int(seconds * 1000), 1000))def read_check_exif(image_path):"""判断图片是否有'exif'信息,没有就写入初始'exif'信息:param image_path:图片路径:return:无"""img = Image.open(image_path)  # 读图try:exif_dict = piexif.load(img.info['exif'])  # 提取exif信息except KeyError:# 处理exif不存在的情况# 创建一个初始的EXIF字典exif_dict = {"0th": {}, "Exif": {}, "GPS": {}, "Interop": {}, "1st": {}, "thumbnail": None}# 将EXIF字典添加到图像的元数据中exif_bytes = piexif.dump(exif_dict)img.save(image_path, exif=exif_bytes)def read_modify_exif(image_path, _dict):""" 读取并且修改exif文件"""img = Image.open(image_path)  # 读图exif_dict = piexif.load(img.info['exif'])  # 提取exif信息exif_dict['GPS'][piexif.GPSIFD.GPSLongitude] = _dict['lng']  # 修改经度exif_dict['GPS'][piexif.GPSIFD.GPSLatitude] = _dict['lat']  # 修改纬度exif_dict['GPS'][piexif.GPSIFD.GPSLongitudeRef] = _dict['lng_ref']  # odm需要读取,一般为’W'exif_dict['GPS'][piexif.GPSIFD.GPSLatitudeRef] = _dict['lat_ref']  # 一般为‘N'exif_bytes = piexif.dump(exif_dict)piexif.insert(exif_bytes, image_path)if __name__ == "__main__":main()

可以用这个网站来看看位置信息
本工具可查看图片Exif信息、图片定位信息、图片GPS信息、图片经纬度信息
https://web.gpstool.com/index
拾取坐标
https://api.map.baidu.com/lbsapi/getpoint/index.html

相关文章:

为图片设置经纬度信息

一、java实现 小编看了很多技术博客,但是测试要么下载的jar包中的api和博客对不上,要么就是不对,总之没实现 Java 读取图片信息 java 写入 exif 信息 使用Java读取和修改图片的Exif信息 java获取图片的GPS信息 https://drewnoakes.com/code/e…...

密码和密钥的联系与区别

密码和密钥是两个非常重要的概念,但容易混淆这两者,以下内容介绍了它们的联系和区别: 一、定义 密码(Password),在日常语境中,通常指的是个人为了验证自己的身份而设置的一段秘密的字符序列&am…...

C++编程法则365天一天一条(323)main函数执行之前和之后的动作

在C和C程序中,main 函数之前和之后执行的函数是由编译器、链接器和运行时环境共同决定的。以下是一些通常会在这些阶段执行的关键函数: 在 main 函数之前执行的函数 启动代码(Start-up Code): 这是由编译器提供的一段代码&#…...

阿里云短信服务使用(Java)

文章目录 一、流程1.打开短信服务2.提交材料申请资质3.资质通过后,申请短信签名并设置短信模板4.右上角设置AccessKey5.充值 二、参考官方文档调用API1.引入maven依赖2.调用API补充 一、流程 1.打开短信服务 登陆注册阿里云 搜索“短信服务”,点击“免…...

C++17之std::void_t

目录 1.std::void_t 的原理 2.std::void_t 的应用 2.1.判断成员存在性 2.1.1.判断嵌套类型定义 2.1.2 判断成员是否存在 2.2 判断表达式是否合法 2.2.1 判断是否支持前置运算符 2.2.3 判断两个类型是否可做加法运算 3.std::void_t 与 std::enable_if 1.std::void_t 的…...

零基础入门篇①⑥ Python可变序列类型--字典

Python从入门到精通系列专栏面向零基础以及需要进阶的读者倾心打造,9.9元订阅即可享受付费专栏权益,一个专栏带你吃透Python,专栏分为零基础入门篇、模块篇、网络爬虫篇、Web开发篇、办公自动化篇、数据分析篇…学习不断,持续更新,火热订阅中🔥专栏限时一个月(5.8~6.8)重…...

C语言面试题1-10

C语言中的内存管理及相关问题探讨 在C语言编程中,内存管理是一个至关重要的概念,掌握内存的分布及其操作不仅能够提高代码效率,还能避免常见的内存泄漏等问题。本文将详细介绍C语言中内存的分布、堆区和栈区的区别、标识符的命名规则、定义和…...

Qt Designer工具如何修改MainWindow窗口的标题

Qt Designer工具如何修改MainWindow窗口的标题 在MainWindow的属性编辑器中选择“windowTitle”后面一栏修改成期望的窗口标题名称即可。 按住“ctrlR”即可查看可视化界面的窗口标题...

车辆前向碰撞预警系统性能要求和测试规程

前言 本文整理《GB/T 33577-2017 智能运输系统-车辆前向碰撞预警系统性能要求和测试规程》国标文件关键信息,FCW系统性能和测试右给深层次的认识。 术语和定义 车辆前向碰撞预警系统 forward vehicle collision warning system自车 subject vehicle(SV)目标车辆 target ve…...

C#实现winform中渲染图的展示

在WinForms中实现图形的渲染展示,可以使用GDI绘图技术。下面是一个简单的示例,演示如何在WinForms中展示一个圆形图形,并根据用户输入的半径动态改变圆的大小: 请在Visual Studio中创建一个WinForms应用程序,并将以下…...

JTS库的讲解及使用

JTS(Java Topology Suite)是一套用于创建、操作和分析二维几何对象的Java库。JTS提供了丰富的几何操作和分析功能,是GIS(地理信息系统)应用中的重要工具。以下是JTS库的一些主要功能及其详细使用示例: 1. …...

【C++杂货铺】unordered系列容器

目录 🌈 前言🌈 📁 unordered系列关联式容器 📁 底层结构 📂 哈希概念 📂 哈希冲突 📂 哈希函数 📂 哈希冲突解决 📁 模拟实现 📁 总结 🌈 前…...

模板-初阶

引言: 在C,我们已经学过了函数重载,这使得同名函数具有多个功能。但是还有一种更省力的方法:采用模板。 本文主要介绍以下内容 1. 泛型编程 2. 函数模板 3. 类模板 1.泛型编程 在将这一部分之前,通过一个故事引…...

重载运算符C++---学习笔记

一、笔记 1. 重载运算符基础知识 重载运算符进行的运算和普通数的加减运算不同之处在于重载运算符的操作数为一个一个自定义的对象,所以相应的要对普通的运算符如-*%/的调用方法进行重写,重载的本质还是函数调用 2. 重载运算符的语法 重载运算符的语…...

SpringMVC枚举类型字段处理

在日常的项目开发中经常会遇到一些取值范围固定的字段,例如性别、证件类型、会员等级等,此时我们可以利用枚举来最大程度减少字段的乱定义,统一管理枚举的值。 SpringMVC中对于枚举也有默认的处理策略: 对于RequestParam&#xf…...

集成算法:Bagging模型、AdaBoost模型和Stacking模型

概述 目的:让机器学习效果更好,单个不行,集成多个 集成算法 Bagging:训练多个分类器取平均 f ( x ) 1 / M ∑ m 1 M f m ( x ) f(x)1/M\sum^M_{m1}{f_m(x)} f(x)1/M∑m1M​fm​(x) Boosting:从弱学习器开始加强&am…...

DW怎么Python:探索Dreamweaver与Python的交织世界

DW怎么Python:探索Dreamweaver与Python的交织世界 在数字世界的广袤天地中,Dreamweaver(简称DW)与Python这两大工具各自闪耀着独特的光芒。DW以其强大的网页设计和开发能力著称,而Python则以其简洁、易读和强大的编程…...

算法(十三)回溯算法---N皇后问题

文章目录 算法概念经典例子 - N皇后问题什么是N皇后问题?实现思路 算法概念 回溯算法是类似枚举的深度优先搜索尝试过程,主要是再搜索尝试中寻找问题的解,当发生不满足求解条件时,就会”回溯“返回(也就是递归返回&am…...

论文阅读:Correcting Motion Distortion for LIDAR HD-Map Localization

目录 概要 Motivation 整体架构流程 技术细节 小结 论文地址:http://arxiv.org/pdf/2308.13694.pdf 代码地址:https://github.com/mcdermatt/VICET 概要 激光雷达的畸变矫正是一个非常重要的工作。由于扫描式激光雷达传感器需要有限的时间来创建…...

Git操作笔记

学git已经好多次了。但是还是会忘记很多的东西,一些常用的操作命令和遇到的bug以后在这边记录汇总下 一.github图片展示 图片挂载,我是创建了一个库专门存图片,然后在github的md中用专用命令展示图片,这样你的md就不会全是文字那…...

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板,载入页面后,会显示引导弹窗,适用于引导用户使用页面,点击完成后,会显示下一个引导弹窗,直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...

云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?

大家好&#xff0c;欢迎来到《云原生核心技术》系列的第七篇&#xff01; 在上一篇&#xff0c;我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在&#xff0c;我们就像一个拥有了一块崭新数字土地的农场主&#xff0c;是时…...

Python爬虫实战:研究feedparser库相关技术

1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...

什么是EULA和DPA

文章目录 EULA&#xff08;End User License Agreement&#xff09;DPA&#xff08;Data Protection Agreement&#xff09;一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA&#xff08;End User License Agreement&#xff09; 定义&#xff1a; EULA即…...

NFT模式:数字资产确权与链游经济系统构建

NFT模式&#xff1a;数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新&#xff1a;构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议&#xff1a;基于LayerZero协议实现以太坊、Solana等公链资产互通&#xff0c;通过零知…...

Linux离线(zip方式)安装docker

目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1&#xff1a;修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本&#xff1a;CentOS 7 64位 内核版本&#xff1a;3.10.0 相关命令&#xff1a; uname -rcat /etc/os-rele…...

RSS 2025|从说明书学习复杂机器人操作任务:NUS邵林团队提出全新机器人装配技能学习框架Manual2Skill

视觉语言模型&#xff08;Vision-Language Models, VLMs&#xff09;&#xff0c;为真实环境中的机器人操作任务提供了极具潜力的解决方案。 尽管 VLMs 取得了显著进展&#xff0c;机器人仍难以胜任复杂的长时程任务&#xff08;如家具装配&#xff09;&#xff0c;主要受限于人…...

基于Java+VUE+MariaDB实现(Web)仿小米商城

仿小米商城 环境安装 nodejs maven JDK11 运行 mvn clean install -DskipTestscd adminmvn spring-boot:runcd ../webmvn spring-boot:runcd ../xiaomi-store-admin-vuenpm installnpm run servecd ../xiaomi-store-vuenpm installnpm run serve 注意&#xff1a;运行前…...

【UE5 C++】通过文件对话框获取选择文件的路径

目录 效果 步骤 源码 效果 步骤 1. 在“xxx.Build.cs”中添加需要使用的模块 &#xff0c;这里主要使用“DesktopPlatform”模块 2. 添加后闭UE编辑器&#xff0c;右键点击 .uproject 文件&#xff0c;选择 "Generate Visual Studio project files"&#xff0c;重…...