普通视图

发现新文章,点击刷新页面。
昨天 — 2025年4月25日Allen Hua 的网络博客

Windows 电脑使用 Obs Studio 录制各个网站视频/桌面画面教程

作者 Allen Hua
2025年4月25日 17:18

我分享这个 flow 是因为我有分享视频中片段的需求,但是又不想用相机拍摄,相机拍摄效果可能也不好。下载下来再裁剪又太麻烦。尤其是我喜欢看车祸警示录,有时候看到某些事故非常搞笑,我就用这个手段录制下来,视频可能就10s,30s,然后再微信分享,就很 nice 了。如果是分享10min的完整视频那种,就不如直接贴链接,或者直接下载下来再分享,不需要使用本文方案进行录制。

前言

你是否会因为难以下载 YouTube, X(Twitter), 小红书, Instagram, 微博 之类的网站上的视频而发愁呢……虽然下载这些网站的视频大多都有在线工具或者命令行工具,可以在 GitHub 寻找。

但是目前经过我的日常使用,小红书和微博上的视频资源不是很轻松就能下载下来,或者下载用时很久,还可能下载下来文件太大(比如下载时无法执行码率和分辨率),不利于再次分享。

我为了解决这个问题,一开始使用了 NVIDIA Geforce Experience,但是这个只能录制屏幕的完整内容,如果想要录制屏幕当中的某一块区域,英伟达这个软件就不行了。

于是转而使用 Obs Studio。下面这段介绍来自 DeepSeek V3

OBS Studio(Open Broadcaster Software)是一款免费开源的跨平台直播和录屏软件,广泛用于游戏直播、教学演示、视频创作等场景。以下是其核心特点:

1. 核心功能

  • 多场景切换:可创建多个场景(如游戏界面、摄像头画面、PPT等),直播时实时切换。
  • 来源组合:支持添加窗口捕获、摄像头、文字、图片、浏览器、音频等元素,自由布局。
  • 高性能录制:支持高帧率(60fps+)、高分辨率(4K)录制,输出为MP4、MKV等格式。
  • 直播推流:一键推流到Twitch、YouTube、B站等平台,支持RTMP协议。

2. 技术优势

  • 低延迟编码:内置x264、NVENC(NVIDIA显卡)、AMF(AMD显卡)等硬件加速编码器。
  • 音频控制:多轨道音频混合,支持降噪、增益等滤镜。
  • 插件扩展:通过插件支持虚拟摄像头、字幕、特效等扩展功能。

3. 适用场景

  • 游戏直播:捕获游戏画面+摄像头叠加,实时互动。
  • 网课/会议:录制屏幕+PPT演示,或虚拟摄像头接入Zoom/Teams。
  • 视频创作:录制教程、剪辑素材,支持后期音频分离编辑。

4. 跨平台支持

  • 支持Windows、macOS、Linux系统,界面简洁但需一定学习成本。

5. 注意事项

  • 硬件要求:高清直播需中高端CPU/显卡,建议提前测试性能。
  • 学习曲线:高级功能(如音频路由、动态滤镜)需查阅教程。

官网下载:OBS Project
社区活跃,遇到问题可通过论坛或GitHub快速解决。适合追求高自由度、零成本的用户。


我在使用 Windows 11 电脑。安装好 Obs Studio 之后,打开软件,进行初始化配置,我不直播,所以只进行了 recording 录制相关的初始化,最后 apply settings,应用设置。

添加源。我拿录制B站车祸警示录的视频举例,使用 edge 浏览器播放B站视频,那么来源选择【窗口采集】,选中正在运行的 edge 那个窗口,标题前缀是 [msedge.exe]

obs 添加源.jpg

如果不想录入当前电脑麦克风的声音,请将 Mic 给静音。

B站视频采集.jpg

此时会录制整个窗口的画面,如果想录制视频播放区域,需要添加一个裁剪/填充的【滤镜】,如下图,设置好距离左,顶部,右,底部的像素数量关闭即可。

obs 滤镜裁剪填充.jpg

最后再点击【开始录制】,同时播放 edge 浏览器窗口的视频,在视频结束时(或者你想截取的视频片段刚好结束)点击【停止录制】。

最终录制视频呈现的质量,设置项在 【设置】->【输出】->【录制】->【录像质量,录像格式,视频编码器,音频编码器,音轨】等配置。

建议录像格式使用MPEG-4,方便传播,比如微信就可以直接预览 mp4 视频。

为typecho博客添加latex支持

作者 Allen Hua
2025年4月25日 13:40

使用了这个插件: https://github.com/zyuzhi/MarkdownKatex-typecho ,下载了 v1.0.1,但是点击创建文章之后无法返回所有文章页面。另外博客首页也无法加载,禁用插件即恢复正常。懒的去追究原因了,索性不用插件改用其他方法。

我家里的一台机器也部署了 typecho,同样都是 docker compose 部署的,和当前 typecho 实例的区别大概就是 v1.2.0 vs v1.2.1 。家里机器上的 typecho 是 1.2.0,当前实例是 1.2.1,有可能是版本升级导致的原有插件失效,因为上述插件 GitHub 源代码是2018年左右最终打包到 release 发行的。

在 typecho v1.2.1 实例上测试如下方法可以为 typecho 博客添加 latex 支持。

方法参考: https://www.xrgzs.top/posts/typecho-use-mathjax-add-latex-support

修改当前主题的 footer.php

将以下代码添加到 footer.php </body> 关闭标签之前。我这个主题这个文件在 components/footer.php。我上面参考的博客将这段脚本引用放在了 index.php,可能会引起 DOM 渲染紊乱,比如图片被拉长,主页 footer 在页面中间渲染。放在 footer.php</body> 前,此时 DOM 已解析完成,图片布局已稳定,脚本加载不再影响初始渲染

<script type="text/javascript"
    src="//cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>

修改当前主题的 header.php

将以下代码添加到 header.php 的适当位置。我这个主题这个文件在 components/header.php

<script type="text/javascript"
    src="//cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>
<script type="text/x-mathjax-config">
    MathJax.Hub.Config({
    extensions: ["tex2jax.js"],
    jax: ["input/TeX", "output/HTML-CSS"],
    tex2jax: {
      inlineMath: [ ['$','$'], ["\\(","\\)"] ],
      displayMath: [ ['$$','$$'], ["\\[","\\]"] ],
      processEscapes: true
    },
    "HTML-CSS": { availableFonts: ["TeX"] }
    });
</script>

mardown + latex 测试

牛顿第二定律

物体所受合外力 $\mathbf{F}$ 与其加速度 $\mathbf{a}$ 满足:

$$ \mathbf{F} = m\mathbf{a} = \frac{d\mathbf{p}}{dt} $$

其中:

  • $m$ 为物体质量(单位:$\mathrm{kg}$)
  • $\mathbf{p} = m\mathbf{v}$ 为动量(单位:$\mathrm{kg \cdot m/s}$)
  • $t$ 为时间(单位:$\mathrm{s}$)

万有引力公式

两个质点间的引力大小:

$$ F = G\frac{m_1 m_2}{r^2} $$

式中普适常量: $G \approx 6.674 \times 10^{-11}\, \mathrm{m^3 \cdot kg^{-1} \cdot s^{-2}}$

新能源汽车之纯电车使用交流慢充和直流快充的充电损耗对比

作者 Allen Hua
2025年4月25日 13:15

以下是我和DeepSeek R1的对话


USER

新能源汽车使用7kW 交流慢充和外面的直流快充,哪个充电时损耗更高?7kW 交流慢充的电流大概30A,44度电池大概需要7个小时;使用外面直流快充桩,假如功率是70kW,充满需要1小时,但是充电电流最大180A左右。请计算一下哪种充电方式电损耗更多?

ASSISTANT

嗯,用户问的是新能源汽车用7kW的交流慢充和外面的直流快充,哪个充电时的损耗更高。需要比较两种充电方式的电损耗。首先,我得理清楚问题的各个参数和可能的损耗来源。 用户给出的数据是,7kW慢充电流约30A,44度电池需要7小时充满。而直流快充功率70kW,充满需要1小时,电流最大180A。用户希望计算哪种方式损耗更多。 首先,我需要明确充电损耗主要包括哪些部分。通常来说,充电损耗可能来自几个方面:充电桩本身的效率、线缆的电阻损耗、电池在充电过程中的热损耗,以及可能的转换损耗(比如交流转直流时的损耗)。 但这里可能需要简化问题,因为用户可能只关注其中一部分损耗,比如线损或者充电效率差异。但用户没有明确说明,可能需要自己做一些合理的假设。 首先,对于交流慢充,7kW的功率,电流30A,电压应该是220V左右(因为功率=电压×电流,7kW=7000W,7000/220≈31.8A,接近30A,可能实际电压更高或者电流略高)。而直流快充的话,70kW功率,电流180A,那电压大概是70000/180≈388.9V,这符合一般直流快充的高电压情况。 接下来,考虑线损。线损主要和电流的平方成正比,和电阻成正比(P=I²R)。所以,线缆的电阻会影响损耗。但需要知道线缆的电阻值,或者比较两种情况下电流的差异导致的损耗差异。 不过,这里可能需要区分交流慢充和直流快充的充电过程。交流慢充的情况下,车载充电机(OBC)将交流转换为直流给电池充电,而直流快充是直接由充电桩提供直流电,绕过了车载充电机。因此,两者的损耗可能不同,交流慢充会有OBC的转换效率问题,而直流快充可能有充电桩内部的转换效率以及线损。 假设线缆的电阻相同的话,那么线损取决于电流的平方乘以电阻。但实际情况中,直流快充的线缆可能更粗,电阻更小,但电流更高。不过用户可能没有给出线缆的具体参数,可能需要假设两种情况下的线缆电阻,或者比较相对损耗。 或者,用户可能只是希望比较两种情况下电流不同导致的线损差异,假设其他条件相同。 不过可能更全面的考虑是,整个充电过程的效率,包括充电桩的效率、线损、车载充电机或电池管理系统的效率等。 例如,对于交流慢充:电网的电能先经过充电桩(可能效率接近100%,因为交流传输),然后到车载充电机,OBC将交流转换为直流,并调整电压到电池需要的水平,这个过程的效率通常在85%-95%之间,比如假设是90%。然后,线损部分,电流30A,线缆电阻假设为0.1Ω(随便举个例子),那么线损是I²R=30²×0.1=90W,持续7小时,总损耗是90W×7h=0.63kWh。同时,OBC的效率损失是,输入到OBC的电能是7kW×7h=49kWh,输出到电池的是44kWh(因为44度电池),所以OBC的效率是44/(49)≈89.8%,接近90%。这里的线损可能已经包含在OBC的效率中,或者需要额外计算? 而直流快充的情况,充电桩本身将交流转换为直流,效率可能在90%左右,然后线损部分,电流180A,假设线缆电阻更小,比如0.02Ω(因为快充线缆更粗),那么线损是180²×0.02=648W,持续1小时,总损耗0.648kWh。同时,充电桩的效率如果是90%,那么输入到充电桩的电能是70kW×1h=70kWh,输出到车的直流电是70kWh×90%=63kWh,但实际充进电池的是44kWh(因为电池容量44度),所以这里可能还有其他损耗,比如电池充电时的效率,或者BMS的管理损耗,可能这部分效率假设为95%,那么从63kWh到电池的44kWh,可能需要计算是否合理?其实这里可能需要更准确的数据,但用户可能只是希望比较两种方式的总体损耗。 不过可能用户的问题更简单,即比较两种充电方式的总损耗,而损耗主要来自电流在传输过程中的线损和转换效率。因此,可能需要分别计算两种方式的总输入电能和实际充入电池的电能,差值就是损耗。 对于慢充:44度电池需要7小时,充电功率7kW,所以输入的电能是7kW×7h=49kWh,而充入电池的是44kWh,所以总损耗是49-44=5kWh。这部分损耗包括线损和OBC的转换损耗。 对于快充:70kW充1小时,输入电能为70kWh,而充入电池44kWh,所以损耗是70-44=26kWh?这显然太大,可能哪里有问题。因为实际上快充的充电时间可能不是一直保持70kW,特别是当电池接近充满时,充电功率会下降,所以用户说的“充满需要1小时”可能是指从某个低电量到满,但实际平均功率可能不是70kW整个小时。但用户给出的数据是假设70kW持续1小时,所以输入70kWh,但电池只有44kWh,显然不可能,这显然不合理。这说明用户的数据可能有问题,或者需要更仔细的分析。 可能用户提供的例子中,快充的70kW功率下,充满44度电池需要的时间应该是44kWh /70kW≈0.628小时,即约37.7分钟,而不是1小时。用户可能在这里有错误,或者需要重新审视数据。或者,可能用户的意思是快充的功率在开始阶段可以达到70kW,但随着电池电量增加,功率会下降,所以总时间需要1小时。但这样的话,实际输入的电能应该还是44kWh加上损耗,所以总输入可能接近44kWh / 效率。例如,如果充电桩和线路效率是90%,那么输入电能为44 /0.9≈48.89kWh,那么充电时间就是48.89kWh /70kW≈0.7小时,约42分钟,但用户说需要1小时,可能效率更低或者有其他因素。 这里可能存在数据矛盾,需要用户澄清,但可能用户是假设理想情况下,快充以70kW充1小时,总输入70kWh,但电池只有44kWh,这显然不可能,所以可能是例子中的数值有问题。或者,可能用户提到的“44度电池”需要充的电量不是从0到100%,而是部分充电?例如,如果电池剩余20%,需要充80%的电量,即35.2kWh,那么快充70kW的话,时间约35.2/70≈0.5小时,约30分钟。但用户说需要1小时,可能例子中的数值有误。 或者,可能用户混淆了电池容量和充电量。例如,电池是44度,但使用快充时,充电量可能更大,因为存在损耗。例如,假设快充的总输入电能为70kW×1h=70kWh,其中充入电池44kWh,那么损耗为26kWh,显然这效率太低了,只有62.8%,这显然不合理。因此,可能用户的数据有误,或者需要重新考虑。 可能正确的数据应该是,快充的充电时间是根据电池容量和充电功率计算的,例如44kWh /70kW≈0.628小时,即约37分钟,而用户可能提到的1小时是包括其他因素,例如充电速度下降或者不同的SOC区间。但无论如何,用户给出的数据可能存在矛盾,需要进一步确认。 不过,回到问题本身,用户可能希望比较两种充电方式的损耗,基于他们提供的参数,即使数据存在矛盾,可能需要按给出的数据计算,假设快充需要1小时充入44度,即输入70kWh,而慢充输入49kWh,这样快充的损耗更高,但实际情况中,这显然不可能,因为输入必须大于输出,所以可能用户的数据有误。 或者,可能用户提到的“44度电池”充满需要的时间,快充是1小时,但实际充电功率在充电过程中会调整,比如开始时高功率,后面降低,所以平均功率可能不是70kW。例如,总充电量44kWh,时间1小时,平均功率44kW,所以充电桩的最大功率是70kW,但平均44kW,这样输入的电能是44kWh除以充电效率,比如如果效率90%,则输入约为48.89kWh,损耗约4.89kWh。 而慢充是7kW×7h=49kWh输入,充入44kWh,损耗5kWh。那两种方式的损耗接近,快充可能稍低。 但用户给出的数据可能存在问题,需要明确。或者,可能用户希望仅计算线损,而不考虑转换效率。例如,只比较两种充电电流下的线缆损耗。 例如,假设线缆的电阻为R,那么线损为I²R×时间。 对于慢充,电流30A,时间7h,线损为30²×R×7=6300R。 对于快充,电流180A,时间1h,线损为180²×R×1=32400R. 因此,如果线缆电阻相同,快充的线损更高,是慢充的32400/6300≈5.14倍。因此,线损方面,快充更高。 但实际中,快充的线缆更粗,电阻更低。例如,假设慢充的线缆电阻为0.1Ω,而快充的线缆电阻为0.02Ω,那么线损计算: 慢充:30²×0.1×7=900×0.1×7=63×7=441 Wh=0.441 kWh 快充:180²×0.02×1=32400×0.02×1=648 Wh=0.648 kWh 因此,快充的线损更高,即使电阻更低,但由于电流平方的影响更大,所以总损耗更高。 但此外,还需要考虑转换效率,比如慢充需要经过车载充电机,效率约90%,而快充的充电桩效率可能约95%(直流转换),再加上线损。 例如,慢充的总输入电能:44kWh /0.9≈48.89kWh,其中损耗48.89-44=4.89kWh,包括OBC的转换损耗和线损。如果线损是0.441kWh,那么OBC的损耗约为4.89-0.441≈4.45kWh。 快充的情况,假设充电桩效率95%,线损0.648kWh,那么总输入电能为(44kWh +0.648)/0.95≈44.648/0.95≈47kWh,总损耗是47-44=3kWh,其中充电桩损耗47×0.05≈2.35kWh,线损0.648kWh,总损耗≈2.35+0.648≈3kWh。 这样比较的话,快充的总损耗更低,3kWh,而慢充损耗4.89kWh。因此快充更高效。 但这里假设了不同的转换效率和线缆电阻,实际中可能不同,但根据用户的问题,可能需要综合考虑这些因素。 总结来说,如果只考虑线损,快充可能更高,但如果考虑转换效率,快充可能总损耗更低。因此,需要明确用户到底想比较哪部分的损耗。 但用户的问题是“哪种充电方式电损耗更多”,可能指整体从电网到电池的总损耗。因此需要考虑所有损耗环节。 对于交流慢充: 电网→充电桩(效率接近100%,因为只是传递交流电)→车载充电机(效率90%)→电池,同时线损在车载充电机之前还是之后?可能线损是在充电桩到车载充电机之间,这部分线损是I²R,即30A时的线损,然后OBC的效率是90%,所以总输入电能是(44kWh +线损)/0.9。 例如,线损为0.441kWh,则OBC的输入为44 +0.441=44.441kWh,所以电网输入为44.441 /0.9≈49.38kWh,总损耗49.38 -44≈5.38kWh。 对于直流快充: 电网→充电桩(效率95%)→线损→电池,假设电池充电效率100%(即充入的就是44kWh),那么充电桩输出需要44kWh +线损0.648=44.648kWh,电网输入为44.648 /0.95≈47kWh,总损耗47 -44=3kWh。 因此,在这种情况下,慢充总损耗5.38kWh,快充3kWh,快充损耗更少。 但可能用户的问题不考虑充电桩和OBC的效率,仅考虑线损的话,快充线损更高,但综合效率后,快充总损耗更少。 因此,答案取决于考虑哪些因素。如果仅线损,快充更高;如果考虑整体效率,快充可能更优。 但用户给出的数据中,慢充输入49kWh(7kW×7h),充入44kWh,损耗5kWh;快充输入70kWh(70kW×1h),充入44kWh,损耗26kWh。这显然不符合实际,因为快充不可能输入70kWh充入44kWh,效率只有62.8%。因此,用户的数据可能有误,正确的快充输入应该根据实际效率来计算。 可能用户的问题中存在错误,例如快充的充电时间应该是44kWh/70kW≈0.628小时,约38分钟,而不是1小时。因此,输入电能为70kW×0.628h≈44kWh,假设效率100%,这不可能,所以实际输入更多,比如44/0.9≈48.89kWh,充电时间≈48.89/70≈0.7小时≈42分钟。 但用户说快充需要1小时,可能意味着平均功率为44kW(44kWh/1h),那么输入电能为44/效率,比如44/0.9≈48.89kWh,损耗约4.89kWh,和慢充的5kWh接近,可能损耗相当。 但用户的数据可能存在矛盾,需要澄清。不过根据用户给出的数据,可能他假设快充以70kW充1小时,输入70kWh,充入44kWh,损耗26kWh,这显然不合理,效率过低。因此,可能用户的数据有误,或者需要重新审视。 综合来看,正确的比较需要考虑充电效率,线损,转换效率等。通常来说,直流快充的效率更高,因为减少了车载充电机的转换环节,而快充桩的转换效率可能更高,且虽然电流大导致线损高,但时间短,可能总损耗更少。 例如,假设慢充:OBC效率90%,线损0.441kWh,总损耗为5.38kWh;快充:充电桩效率95%,线损0.648kWh,总损耗3kWh。因此快充损耗更少。 但用户的问题可能需要根据给出的数据回答,尽管数据可能有问题。假设用户的数据正确,即慢充输入49kWh,快充输入70kWh,那么快充损耗更高。但这种情况在现实中不可能,因为快充不可能输入超过电池容量那么多,除非电池在充电过程中有极大的损耗,但通常损耗不会超过20-30%。 可能用户的问题存在错误,例如快充的功率是70kW,但实际充电时间不是1小时,而是0.6小时,输入70×0.6=42kWh,充入44kWh显然不可能,所以可能用户的数据有误。 在这种情况下,可能需要指出用户的数据矛盾,并给出两种情况的比较方法。 最终,合理的结论是:在考虑线损和转换效率的情况下,直流快充通常效率更高,总损耗更少,尽管线损可能更高,但由于充电时间短且转换环节少,总损耗可能低于交流慢充。但需要具体数值支持。 不过根据用户给出的数据,如果慢充输入49kWh得到44kWh,损耗5kWh;快充输入70kWh得到44kWh,损耗26kWh,那么显然快充损耗更高,但这在实际中不可能。因此,用户的数据可能有误,正确的方法应基于实际效率计算。

在比较新能源汽车使用7kW交流慢充和70kW直流快充的充电损耗时,需综合考虑线损和转换效率。以下是关键分析步骤:


1. 交流慢充(7kW)的损耗计算

  • 输入电能:7kW × 7h = 49kWh
  • 输出电能:44kWh(电池容量)
  • 总损耗:49kWh - 44kWh = 5kWh
    • 转换效率:车载充电机(OBC)效率约90%,线损约0.44kWh(假设线缆电阻0.1Ω)。
    • 实际总损耗包括OBC转换(约4.45kWh)和线损(0.44kWh),总约4.89kWh

2. 直流快充(70kW)的损耗计算

  • 理论输入电能:70kW × 1h = 70kWh
    • 矛盾:若输入70kWh,输出44kWh,损耗26kWh(效率仅62.8%),不合理。
  • 实际修正:假设充电桩效率95%,线损0.65kWh(电阻0.02Ω),则输入电能为:
    • 输出电能需求:44kWh + 0.65kWh = 44.65kWh
    • 电网输入:44.65kWh / 0.95 ≈ 47kWh
    • 总损耗:47kWh - 44kWh = 3kWh(含充电桩损耗2.35kWh + 线损0.65kWh)。

3. 关键结论

  • 线损比较:快充电流更大(180A vs. 30A),线损更高(0.65kWh vs. 0.44kWh)。
  • 总效率比较:快充因跳过车载充电机,转换效率更高(95% vs. 90%),总损耗更低(3kWh vs. 4.89kWh)。
  • 用户数据问题:若按用户假设快充输入70kWh,则损耗高达26kWh,但此情况不现实,实际快充效率更高。

最终答案

在合理假设下,直流快充的总损耗更低(约3kWh),因其转换效率更高且充电时间短。但若按用户提供的错误数据(快充输入70kWh),则损耗更高,此情况不符合实际。实际使用中,快充是更高效的选择。

USER

我给出的快充功率70kW,但实际充电功率并不是恒定70kW 呀,功率会随着电池soc的增高而降低的。所以快充充满一般都需要1小时。请再计算看看

ASSISTANT

好的,用户之前问的是新能源汽车使用7kW交流慢充和70kW直流快充哪个损耗更高。我之前给出的回答中假设快充的功率是恒定的70kW,但用户现在指出实际快充功率会随着电池SOC的升高而降低,所以充满通常需要1小时。用户希望我重新计算,考虑功率变化的情况。 首先,我需要理解用户的问题核心:之前的计算可能假设快充功率恒定,但实际情况是快充功率在充电过程中会逐渐降低,尤其是在高SOC时。因此,平均功率可能低于70kW,但总充电时间还是1小时左右。用户想知道这种情况下损耗如何变化。 接下来,我需要回顾之前的计算。在之前的分析中,假设快充功率70kW持续1小时,输入70kWh,但用户指出这不符合实际,因为实际充电功率会下降,导致总输入电量可能低于70kWh。但用户提到充满仍需要1小时,所以可能需要考虑平均功率,或者充电曲线。 我需要重新计算快充的总输入电能,考虑功率变化。可能需要使用积分或者平均功率来估算。但用户可能希望用更简化的方法,比如假设充电过程分为高功率和低功率阶段,或者取平均功率。 例如,假设快充在前80% SOC时以70kW充电,后20%时功率逐渐下降,总时间仍为1小时。那么总输入电量可能不是70kWh,而是更少。例如,假设平均功率为44kW(因为电池容量44kWh,充满需要1小时),但这样输入电量是44kWh,这显然不对,因为需要考虑损耗。 或者,可能用户的意思是虽然功率变化,但总充电时间还是1小时,因此总输入能量需要重新估算。可能需要考虑电池容量44kWh,加上损耗,总输入能量应该大于44kWh,但如何计算? 在之前的回答中,我假设充电桩效率95%,线损0.65kWh,总输入为47kWh,损耗3kWh。但现在用户指出功率不是恒定的,可能需要调整这个计算。 可能的步骤是: 1. 计算实际输入到电池的能量:44kWh(电池容量) 2. 考虑充电过程中的平均功率和效率。假设充电桩的效率为95%,线损根据电流变化计算。 但问题在于,当快充功率变化时,电流也会变化,线损(I²R)会随电流平方变化。因此,线损不能简单地用最大电流计算,而是需要积分整个充电过程的电流变化。 例如,如果电流在充电过程中从180A逐渐降低,那么线损是积分(I(t)^2 * R) dt。但用户可能没有提供具体的充电曲线,因此需要做出合理的假设。 为了简化,可以假设平均电流为某个值。比如,初始电流180A,逐渐降低到较低值,平均电流可能是100A。但这样线损会低于之前计算的180A的情况。 或者,可以按照能量传输的角度来考虑:电池接收44kWh,充电桩的效率为95%,所以输入电量为44 / 0.95 ≈ 46.3kWh。线损则需要根据实际电流计算,但由于电流变化,可能需要使用平均电流平方乘以时间。例如,如果平均电流是100A,线电阻0.02Ω,那么线损为(100)^2 * 0.02 * 1h = 200Wh = 0.2kWh。总损耗则为充电桩损耗(46.3 -44 =2.3kWh)加上线损0.2kWh,总损耗约2.5kWh。 这样总损耗可能比之前的3kWh更低,因为平均电流低于180A。但用户之前的数据中,快充的最大电流是180A,所以需要考虑实际电流变化的影响。 另一个方法是,考虑典型快充曲线。例如,从0%到80%可能以较高功率充电,之后功率下降。假设前80% SOC(35.2kWh)以70kW充电,时间约为35.2kWh /70kW ≈0.5小时,剩余20%(8.8kWh)以较低功率充电,比如35kW,时间0.25小时,总时间0.75小时,但用户说总时间1小时,可能后面更慢。假设总时间1小时,那么平均功率为44kWh /1h =44kW,但充电桩输入功率需要考虑效率,所以输入功率为44 /0.95 ≈46.3kW,总输入能量46.3kWh,损耗2.3kWh(充电桩)加线损。 线损计算需要平均电流。假设平均输入功率为46.3kW,电压假设为400V(直流快充通常高电压),电流为46,300W /400V ≈115.75A。线损为I²Rt = (115.75)^2 *0.02Ω *1h ≈267.7Wh ≈0.267kWh。总损耗约2.3 +0.267≈2.57kWh。这比之前的3kWh更低,因为平均电流低于180A。 而慢充的损耗之前计算为4.89kWh,所以快充损耗更低。 但用户需要确认的是,当考虑快充功率变化时,损耗是否仍然低于慢充。因此,正确的结论应该是,即使考虑功率变化,快充的总损耗仍然低于慢充,因为快充的高效转换和更短的时间导致的线损可能较低,尽管电流较高,但由于时间短,线损可能并不显著高于慢充。 可能还需要重新计算慢充的线损是否正确。慢充是7kW,30A,假设电压为230V(单相交流),电阻0.1Ω,时间7小时。线损为I²Rt =30² *0.1 *7=6300Wh=6.3kWh?但之前计算的是0.44kWh,这可能有问题。可能之前的线损计算有误。 例如,如果线缆电阻是0.1Ω,电流30A,则每小时的线损是30²*0.1=90W,7小时就是630Wh=0.63kWh,而非6.3kWh。可能之前的计算有笔误,用户可能注意到这一点。 因此,修正慢充线损为0.63kWh,加上OBC损耗,总损耗可能更高。例如,输入49kWh,输出44kWh,总损耗5kWh。其中OBC效率90%,所以OBC损耗为49kWh*(1-0.9)=4.9kWh,线损0.63kWh,总损耗5.53kWh。 而快充的损耗如果是2.57kWh,则仍然更低。因此,结论是快充损耗更低。 不过需要检查所有计算是否正确,特别是线损部分。用户可能在之前的回答中线损计算有误,现在需要修正。 总结来说,用户希望确保在考虑快充功率变化的情况下,损耗计算是否仍然支持快充更高效。因此,需要重新计算并确认线损和转换效率的影响。

在考虑快充功率动态变化的情况下,重新计算两种充电方式的损耗如下:


1. 直流快充(动态功率)损耗计算

假设条件

  • 电池容量:44kWh
  • 充电时间:1小时(总耗时)
  • 充电功率曲线:前80% SOC(0-35.2kWh)以70kW充电,后20% SOC(35.2-44kWh)功率逐步下降至约9kW,平均功率约为 44kW(总输入能量需满足电池容量+损耗)。
  • 充电桩效率:95%(含AC/DC转换损耗)
  • 线缆电阻:0.02Ω(快充高压线缆更粗,电阻更低)
  • 充电电压:400V(直流快充典型电压)

计算步骤

  1. 输出到电池的电能:44kWh
  2. 充电桩输入电能(含效率损耗): $$ \text{输入电能} = \frac{44\ \text{kWh}}{0.95} \approx 46.3\ \text{kWh} $$
  3. 线损计算(动态电流积分简化):
    • 平均电流: $$ I_{\text{avg}} = \frac{\text{平均功率}}{\text{电压}} = \frac{44\ \text{kW}}{400\ \text{V}} = 110\ \text{A} $$
    • 线损能量: $$ P_{\text{线损}} = I_{\text{avg}}^2 \cdot R \cdot t = (110)^2 \cdot 0.02 \cdot 1 \approx 242\ \text{Wh} = 0.24\ \text{kWh} $$
  4. 总损耗
    • 充电桩损耗:46.3kWh - 44kWh = 2.3kWh
    • 线损:0.24kWh
    • 合计:2.3 + 0.24 = 2.54kWh

2. 交流慢充(7kW)损耗计算

假设条件

  • 充电功率:7kW(恒定)
  • 充电时间:7小时(44kWh / 7kW ≈ 6.3小时,取整为7小时)
  • 车载充电机(OBC)效率:90%
  • 线缆电阻:0.1Ω(家用交流线缆较长,电阻更高)
  • 充电电压:230V(单相交流)

计算步骤

  1. 输入电能: $$ 7\ \text{kW} \times 7\ \text{h} = 49\ \text{kWh} $$
  2. OBC输出电能(考虑效率): $$ 49\ \text{kWh} \times 0.9 = 44.1\ \text{kWh} $$
  3. 线损计算
    • 电流: $$ I = \frac{P}{V} = \frac{7000\ \text{W}}{230\ \text{V}} \approx 30.4\ \text{A} $$
    • 线损能量: $$ P_{\text{线损}} = I^2 \cdot R \cdot t = (30.4)^2 \cdot 0.1 \cdot 7 \approx 649\ \text{Wh} = 0.65\ \text{kWh} $$
  4. 总损耗
    • OBC损耗:49kWh - 44.1kWh = 4.9kWh
    • 线损:0.65kWh
    • 合计:4.9 + 0.65 = 5.55kWh

3. 结论对比

指标 直流快充(动态功率) 交流慢充(7kW)
总损耗 约2.54kWh 约5.55kWh
损耗比例 5.8%(44kWh电池) 12.6%
核心原因 转换效率高(95%)、时间短、线损低 转换效率低(90%)、时间长、线损高

最终答案

即使考虑快充功率随SOC动态下降的情况,直流快充的总损耗(约2.54kWh)仍显著低于交流慢充(约5.55kWh)。核心原因在于:

  1. 快充跳过车载充电机,直接由高效充电桩(95%)完成AC/DC转换;
  2. 快充时间短(1小时),线损积累更少,尽管电流较大,但高压线缆电阻更低;
  3. 慢充因充电时间长(7小时)且OBC效率低(90%),累计损耗更高。

实际建议:若需减少充电损耗,优先选择直流快充;若考虑电池寿命,可适当使用慢充平衡。

昨天以前Allen Hua 的网络博客

2025年3月更新全国5A景区名录

作者 Allen Hua
2025年3月25日 14:26

21年8月我写过这篇:全国各省份 5A 级景区

时间到了2025年3月,全国5A变化挺大的,今天再来处理一下全部数据。数据来自文化和旅游部 at 2025-03-25 14:32:24

先上代码

import cn.hutool.core.thread.ThreadUtil;
import cn.hutool.http.ContentType;
import cn.hutool.http.HttpResponse;
import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import org.apache.commons.collections.CollectionUtils;

import java.util.Collections;

/**
 * @author: hellodk
 * @description AllProvince5ASpot
 * @date: 3/25/2025 1:47 PM
 */

public class AllProvince5ASpot {

    private static int globalCounter = 0;

    public static void main(String[] args) {
        AllProvince5ASpot spot = new AllProvince5ASpot();
        spot.printAll5ASpot();
        System.out.println("一共有多少个景区?" + globalCounter);
    }

    private void printAll5ASpot() {
        final String baseUrl = "https://www.mct.gov.cn/tourism/api/content/getContentListByDirId";
        int totalPage;
        int totalItem = 0;
        int currPage = 1;
        JSONObject body = new JSONObject();
        body.put("directoryId", "4");
        body.put("searchList", Collections.emptyList());
        body.put("size", 100);
        body.put("page", currPage);
        HttpResponse resp = HttpUtil.createPost(baseUrl)
                .body(body.toJSONString(), ContentType.JSON.getValue())
                .timeout(60000)
                .execute();
        if (!resp.isOk()) {
            System.err.println("第一次就请求失败。现退出程序");
            return;
        }
        JSONObject res = JSON.parseObject(resp.body());
        // .data.contentList.totalPages
        // totalElements
        totalPage = res.getJSONObject("data").getJSONObject("contentList").getInteger("totalPages");
        totalItem = res.getJSONObject("data").getJSONObject("contentList").getInteger("totalElements");
        System.out.println("总的页数:" + totalPage);
        System.out.println("总的景区数:" + totalItem);
        JSONArray items = res.getJSONObject("data").getJSONObject("contentList").getJSONArray("content");
        printSpot(items);

        while (currPage <= totalPage) {
            currPage++;
            ThreadUtil.safeSleep(3000);
            body.put("page", currPage);
            resp = HttpUtil.createPost(baseUrl)
                    .body(body.toJSONString(), ContentType.JSON.getValue())
                    .timeout(60000)
                    .execute();
            if (!resp.isOk()) {
                System.err.println("第 " + currPage + " 次请求失败。现跳过当次,准备下一次请求");
                continue;
            }
            res = JSON.parseObject(resp.body());
            items = res.getJSONObject("data").getJSONObject("contentList").getJSONArray("content");
            printSpot(items);
        }

    }

    private void printSpot(JSONArray items) {
        if (CollectionUtils.isNotEmpty(items)) {
            System.out.println();
            System.out.println("----");
            for (Object item : items) {
                globalCounter++;
                JSONObject spot = (JSONObject) item;
                System.out.print("景区名称:" + spot.getString("name") + "  ");
                System.out.print("地区:" + spot.getString("provinceName") + "  ");
                System.out.print("A级:" + spot.getString("gradesName") + "  ");
                System.out.print("评定年份:" + spot.getString("year"));
                System.out.println();
            }
            System.out.println("----");
            System.out.println();
        }
    }
}

输出如下:

总的页数:4
总的景区数:358


景区名称:故宫博物院 地区:北京市 A级:5A 评定年份:2007年
景区名称:天坛公园 地区:北京市 A级:5A 评定年份:2007年
景区名称:颐和园 地区:北京市 A级:5A 评定年份:2007年
景区名称:八达岭—慕田峪长城旅游区 地区:北京市 A级:5A 评定年份:2007年
景区名称:明十三陵景区 地区:北京市 A级:5A 评定年份:2011年
景区名称:恭王府景区 地区:北京市 A级:5A 评定年份:2012年
景区名称:北京奥林匹克公园 地区:北京市 A级:5A 评定年份:2012年
景区名称:圆明园遗址公园景区 地区:北京市 A级:5A 评定年份:2019年
景区名称:北京(通州)大运河文化旅游景区 地区:北京市 A级:5A 评定年份:2024年
景区名称:天津古文化街旅游区(津门故里) 地区:天津市 A级:5A 评定年份:2007年
景区名称:盘山风景名胜区 地区:天津市 A级:5A 评定年份:2007年
景区名称:承德市承德避暑山庄及周围寺庙景区 地区:河北省 A级:5A 评定年份:2007年
景区名称:保定市白洋淀景区 地区:河北省 A级:5A 评定年份:2007年
景区名称:保定市野三坡景区 地区:河北省 A级:5A 评定年份:2011年
景区名称:石家庄市西柏坡景区 地区:河北省 A级:5A 评定年份:2011年
景区名称:唐山市清东陵景区 地区:河北省 A级:5A 评定年份:2015年
景区名称:邯郸市娲皇宫景区 地区:河北省 A级:5A 评定年份:2015年
景区名称:邯郸市广府古城景区 地区:河北省 A级:5A 评定年份:2017年
景区名称:保定市白石山景区 地区:河北省 A级:5A 评定年份:2017年
景区名称:秦皇岛市山海关景区 地区:河北省 A级:5A 评定年份:2007/2018年
景区名称:保定市清西陵景区 地区:河北省 A级:5A 评定年份:2019年
景区名称:承德市金山岭长城景区 地区:河北省 A级:5A 评定年份:2020年
景区名称:唐山市南湖·开滦旅游景区 地区:河北省 A级:5A 评定年份:2024年
景区名称:衡水市衡水湖旅游景区 地区:河北省 A级:5A 评定年份:2024年
景区名称:大同市云冈石窟景区 地区:山西省 A级:5A 评定年份:2007年
景区名称:忻州市五台山风景名胜区 地区:山西省 A级:5A 评定年份:2007年
景区名称:晋城市皇城相府生态文化旅游区 地区:山西省 A级:5A 评定年份:2011年
景区名称:晋中市绵山风景区 地区:山西省 A级:5A 评定年份:2013年
景区名称:晋中市平遥古城景区 地区:山西省 A级:5A 评定年份:2015年
景区名称:忻州市雁门关景区 地区:山西省 A级:5A 评定年份:2017年
景区名称:临汾市洪洞大槐树寻根祭祖园旅游景区 地区:山西省 A级:5A 评定年份:2018年
景区名称:长治市太行山大峡谷八泉峡景区 地区:山西省 A级:5A 评定年份:2019年
景区名称:临汾市云丘山景区 地区:山西省 A级:5A 评定年份:2020年
景区名称:黄河壶口瀑布旅游区(陕西省延安市·山西省临汾市) 地区:山西省、陕西省 A级:5A 评定年份:2022年
景区名称:太原市晋祠天龙山景区 地区:山西省 A级:5A 评定年份:2024年
景区名称:晋中市乔家大院景区 地区:山西省 A级:5A 评定年份:2014/2024年
景区名称:鄂尔多斯市响沙湾旅游景区 地区:内蒙古自治区 A级:5A 评定年份:2011年
景区名称:鄂尔多斯市成吉思汗陵旅游区 地区:内蒙古自治区 A级:5A 评定年份:2011年
景区名称:呼伦贝尔市中俄边境旅游区 地区:内蒙古自治区 A级:5A 评定年份:2016年
景区名称:兴安盟阿尔山-柴河旅游景区 地区:内蒙古自治区 A级:5A 评定年份:2017年
景区名称:赤峰市阿斯哈图石林景区 地区:内蒙古自治区 A级:5A 评定年份:2018年
景区名称:阿拉善盟胡杨林旅游区 地区:内蒙古自治区 A级:5A 评定年份:2019年
景区名称:呼伦贝尔市呼伦贝尔大草原·莫尔格勒河景区 地区:内蒙古自治区 A级:5A 评定年份:2024年
景区名称:呼和浩特市老牛湾黄河大峡谷旅游区 地区:内蒙古自治区 A级:5A 评定年份:2024年
景区名称:沈阳市沈阳植物园 地区:辽宁省 A级:5A 评定年份:2007年
景区名称:大连市老虎滩海洋公园—老虎滩极地馆 地区:辽宁省 A级:5A 评定年份:2007年
景区名称:大连市金石滩景区 地区:辽宁省 A级:5A 评定年份:2011年
景区名称:本溪市本溪水洞景区 地区:辽宁省 A级:5A 评定年份:2015年
景区名称:鞍山市千山景区 地区:辽宁省 A级:5A 评定年份:2017年
景区名称:盘锦市红海滩风景廊道景区 地区:辽宁省 A级:5A 评定年份:2019年
景区名称:本溪市五女山景区 地区:辽宁省 A级:5A 评定年份:2024年
景区名称:延边朝鲜族自治州长白山景区 地区:吉林省 A级:5A 评定年份:2007年
景区名称:长春市伪满皇宫博物馆 地区:吉林省 A级:5A 评定年份:2007年
景区名称:长春市净月潭景区 地区:吉林省 A级:5A 评定年份:2011年
景区名称:长春市长影世纪城景区 地区:吉林省 A级:5A 评定年份:2015年
景区名称:延边州六鼎山文化旅游区 地区:吉林省 A级:5A 评定年份:2015年
景区名称:长春市世界雕塑公园景区 地区:吉林省 A级:5A 评定年份:2017年
景区名称:通化市高句丽文物古迹旅游景区 地区:吉林省 A级:5A 评定年份:2019年
景区名称:松原市前郭查干湖景区 地区:吉林省 A级:5A 评定年份:2024年
景区名称:白城市大安嫩江湾旅游区 地区:吉林省 A级:5A 评定年份:2024年
景区名称:哈尔滨市太阳岛景区 地区:黑龙江省 A级:5A 评定年份:2007年
景区名称:黑河市五大连池景区 地区:黑龙江省 A级:5A 评定年份:2011年
景区名称:牡丹江市镜泊湖景区 地区:黑龙江省 A级:5A 评定年份:2011年
景区名称:伊春市林海奇石景区 地区:黑龙江省 A级:5A 评定年份:2013年
景区名称:大兴安岭地区北极村旅游景区 地区:黑龙江省 A级:5A 评定年份:2015年
景区名称:鸡西市虎头旅游景区 地区:黑龙江省 A级:5A 评定年份:2019年
景区名称:齐齐哈尔市扎龙生态旅游区 地区:黑龙江省 A级:5A 评定年份:2024年
景区名称:东方明珠广播电视塔 地区:上海市 A级:5A 评定年份:2007年
景区名称:上海野生动物园 地区:上海市 A级:5A 评定年份:2007年
景区名称:上海科技馆 地区:上海市 A级:5A 评定年份:2010年
景区名称:中国共产党一大•二大•四大纪念馆景区 地区:上海市 A级:5A 评定年份:2021年
景区名称:西沙明珠湖景区 地区:上海市 A级:5A 评定年份:2024年
景区名称:苏州市苏州园林(拙政园-留园-虎丘) 地区:江苏省 A级:5A 评定年份:2007年
景区名称:苏州市周庄古镇景区 地区:江苏省 A级:5A 评定年份:2007年
景区名称:南京市钟山风景名胜区-中山陵园风景区 地区:江苏省 A级:5A 评定年份:2007年
景区名称:无锡市中央电视台无锡影视基地三国水浒城景区 地区:江苏省 A级:5A 评定年份:2007年
景区名称:无锡市灵山大佛景区 地区:江苏省 A级:5A 评定年份:2009年
景区名称:苏州市同里古镇景区 地区:江苏省 A级:5A 评定年份:2010年
景区名称:南京市夫子庙-秦淮河风光带 地区:江苏省 A级:5A 评定年份:2010年
景区名称:常州市环球恐龙城休闲旅游区 地区:江苏省 A级:5A 评定年份:2010年
景区名称:扬州市瘦西湖风景区 地区:江苏省 A级:5A 评定年份:2010年
景区名称:南通市濠河风景区 地区:江苏省 A级:5A 评定年份:2012年
景区名称:泰州市溱湖旅游景区 地区:江苏省 A级:5A 评定年份:2012年
景区名称:苏州市金鸡湖旅游区 地区:江苏省 A级:5A 评定年份:2012年
景区名称:镇江市金山•焦山•北固山风景区 地区:江苏省 A级:5A 评定年份:2012年
景区名称:无锡市鼋头渚旅游风景区 地区:江苏省 A级:5A 评定年份:2012年
景区名称:苏州市太湖旅游区 地区:江苏省 A级:5A 评定年份:2013年
景区名称:苏州市沙家浜-虞山尚湖旅游区 地区:江苏省 A级:5A 评定年份:2013年
景区名称:常州市天目湖景区 地区:江苏省 A级:5A 评定年份:2013年
景区名称:镇江市茅山景区 地区:江苏省 A级:5A 评定年份:2014年
景区名称:淮安市周恩来故里景区 地区:江苏省 A级:5A 评定年份:2015年
景区名称:盐城市中华麋鹿园景区 地区:江苏省 A级:5A 评定年份:2015年
景区名称:徐州市云龙湖景区 地区:江苏省 A级:5A 评定年份:2016年
景区名称:连云港市花果山景区 地区:江苏省 A级:5A 评定年份:2016年
景区名称:常州市春秋淹城旅游区 地区:江苏省 A级:5A 评定年份:2017年
景区名称:无锡市惠山古镇景区 地区:江苏省 A级:5A 评定年份:2019年
景区名称:宿迁市洪泽湖湿地景区 地区:江苏省 A级:5A 评定年份:2020年
景区名称:连云港市连岛景区 地区:江苏省 A级:5A 评定年份:2024年
景区名称:杭州市杭州西湖风景区 地区:浙江省 A级:5A 评定年份:2007年
景区名称:温州市雁荡山风景区 地区:浙江省 A级:5A 评定年份:2007年


景区名称:舟山市普陀山风景区 地区:浙江省 A级:5A 评定年份:2007年
景区名称:杭州市千岛湖风景区 地区:浙江省 A级:5A 评定年份:2010年
景区名称:嘉兴市乌镇古镇旅游区 地区:浙江省 A级:5A 评定年份:2010年
景区名称:宁波市溪口-滕头旅游景区 地区:浙江省 A级:5A 评定年份:2010年
景区名称:金华市横店影视城景区 地区:浙江省 A级:5A 评定年份:2010年
景区名称:嘉兴市南湖旅游区 地区:浙江省 A级:5A 评定年份:2011年
景区名称:杭州市西溪湿地旅游区 地区:浙江省 A级:5A 评定年份:2012年
景区名称:绍兴市鲁迅故里•沈园景区 地区:浙江省 A级:5A 评定年份:2012年
景区名称:衢州市根宫佛国文化旅游区 地区:浙江省 A级:5A 评定年份:2013年
景区名称:湖州市南浔古镇景区 地区:浙江省 A级:5A 评定年份:2015年
景区名称:台州市天台山景区 地区:浙江省 A级:5A 评定年份:2015年
景区名称:台州市神仙居景区 地区:浙江省 A级:5A 评定年份:2015年
景区名称:嘉兴市西塘古镇旅游景区 地区:浙江省 A级:5A 评定年份:2017年
景区名称:衢州市江郎山•廿八都旅游区 地区:浙江省 A级:5A 评定年份:2017年
景区名称:宁波市天一阁•月湖景区 地区:浙江省 A级:5A 评定年份:2018年
景区名称:丽水市缙云仙都景区 地区:浙江省 A级:5A 评定年份:2019年
景区名称:温州市刘伯温故里景区 地区:浙江省 A级:5A 评定年份:2020年
景区名称:台州市台州府城文化旅游区 地区:浙江省 A级:5A 评定年份:2022年
景区名称:丽水市云和梯田景区 地区:浙江省 A级:5A 评定年份:2024年
景区名称:金华市双龙风景旅游区 地区:浙江省 A级:5A 评定年份:2024年
景区名称:黄山市黄山风景区 地区:安徽省 A级:5A 评定年份:2007年
景区名称:池州市九华山风景区 地区:安徽省 A级:5A 评定年份:2007年
景区名称:安庆市天柱山风景区 地区:安徽省 A级:5A 评定年份:2011年
景区名称:黄山市皖南古村落-西递宏村 地区:安徽省 A级:5A 评定年份:2011年
景区名称:六安市天堂寨旅游景区 地区:安徽省 A级:5A 评定年份:2012年
景区名称:宣城市龙川景区 地区:安徽省 A级:5A 评定年份:2012年
景区名称:阜阳市八里河风景区 地区:安徽省 A级:5A 评定年份:2013年
景区名称:黄山市古徽州文化旅游区 地区:安徽省 A级:5A 评定年份:2014年
景区名称:合肥市三河古镇景区 地区:安徽省 A级:5A 评定年份:2015年
景区名称:芜湖市方特旅游区 地区:安徽省 A级:5A 评定年份:2016年
景区名称:六安市万佛湖风景区 地区:安徽省 A级:5A 评定年份:2016年
景区名称:马鞍山市长江采石矶文化生态旅游区 地区:安徽省 A级:5A 评定年份:2020年
景区名称:滁州市琅琊山景区 地区:安徽省 A级:5A 评定年份:2024年
景区名称:厦门市鼓浪屿风景名胜区 地区:福建省 A级:5A 评定年份:2007年
景区名称:南平市武夷山风景名胜区 地区:福建省 A级:5A 评定年份:2007年
景区名称:三明市泰宁风景旅游区 地区:福建省 A级:5A 评定年份:2011年
景区名称:福建土楼(永定•南靖)旅游景区 地区:福建省 A级:5A 评定年份:2011年
景区名称:宁德市(白水洋•鸳鸯溪)旅游景区 地区:福建省 A级:5A 评定年份:2012年
景区名称:泉州市清源山风景名胜区 地区:福建省 A级:5A 评定年份:2012年
景区名称:宁德市太姥山旅游区 地区:福建省 A级:5A 评定年份:2013年
景区名称:福州市三坊七巷景区 地区:福建省 A级:5A 评定年份:2015年
景区名称:龙岩市古田旅游区 地区:福建省 A级:5A 评定年份:2015年
景区名称:莆田市湄洲岛妈祖文化旅游区 地区:福建省 A级:5A 评定年份:2020年
景区名称:厦门市厦门园林植物园景区 地区:福建省 A级:5A 评定年份:2024年
景区名称:龙岩市冠豸山景区 地区:福建省 A级:5A 评定年份:2024年
景区名称:九江市庐山市庐山风景名胜区 地区:江西省 A级:5A 评定年份:2007年
景区名称:吉安市井冈山市井冈山风景旅游区 地区:江西省 A级:5A 评定年份:2007年
景区名称:上饶市玉山县三清山风景区 地区:江西省 A级:5A 评定年份:2011年
景区名称:鹰潭市贵溪市龙虎山风景名胜区 地区:江西省 A级:5A 评定年份:2012年
景区名称:上饶市婺源县江湾景区 地区:江西省 A级:5A 评定年份:2013年
景区名称:景德镇市昌江区古窑民俗博览区 地区:江西省 A级:5A 评定年份:2013年
景区名称:赣州市瑞金市共和国摇篮景区 地区:江西省 A级:5A 评定年份:2015年
景区名称:宜春市袁州区明月山旅游区 地区:江西省 A级:5A 评定年份:2015年
景区名称:抚州市资溪县大觉山景区 地区:江西省 A级:5A 评定年份:2017年
景区名称:上饶市弋阳县龟峰景区 地区:江西省 A级:5A 评定年份:2017年
景区名称:南昌市东湖区滕王阁旅游区 地区:江西省 A级:5A 评定年份:2018年
景区名称:萍乡市芦溪县萍乡武功山景区 地区:江西省 A级:5A 评定年份:2019年
景区名称:九江市永修县庐山西海景区 地区:江西省 A级:5A 评定年份:2020年
景区名称:赣州市三百山景区 地区:江西省 A级:5A 评定年份:2022年
景区名称:上饶市篁岭景区 地区:江西省 A级:5A 评定年份:2024年
景区名称:泰安市泰山景区 地区:山东省 A级:5A 评定年份:2007年
景区名称:烟台市蓬莱阁-三仙山-八仙过海旅游区 地区:山东省 A级:5A 评定年份:2007年
景区名称:济宁市明故城三孔旅游区 地区:山东省 A级:5A 评定年份:2007年
景区名称:青岛市崂山景区 地区:山东省 A级:5A 评定年份:2011年
景区名称:威海市刘公岛景区 地区:山东省 A级:5A 评定年份:2011年
景区名称:烟台市南山景区 地区:山东省 A级:5A 评定年份:2011年
景区名称:枣庄市台儿庄古城景区 地区:山东省 A级:5A 评定年份:2013年
景区名称:济南市天下第一泉景区 地区:山东省 A级:5A 评定年份:2013年
景区名称:沂蒙山旅游区 地区:山东省 A级:5A 评定年份:2013年
景区名称:潍坊市青州古城景区 地区:山东省 A级:5A 评定年份:2017年
景区名称:威海市威海华夏城景区 地区:山东省 A级:5A 评定年份:2017年
景区名称:东营市黄河口生态旅游区 地区:山东省 A级:5A 评定年份:2019年
景区名称:临沂市萤火虫水洞•地下大峡谷旅游区 地区:山东省 A级:5A 评定年份:2020年
景区名称:济宁市微山湖旅游区 地区:山东省 A级:5A 评定年份:2022年
景区名称:青岛市奥帆海洋文化旅游区 地区:山东省 A级:5A 评定年份:2024年
景区名称:淄博市周村古商城景区 地区:山东省 A级:5A 评定年份:2024年
景区名称:郑州市嵩山少林景区 地区:河南省 A级:5A 评定年份:2007年
景区名称:洛阳市龙门石窟景区 地区:河南省 A级:5A 评定年份:2007年
景区名称:焦作市云台山-神农山-青天河风景区 地区:河南省 A级:5A 评定年份:2007年
景区名称:安阳市殷墟景区 地区:河南省 A级:5A 评定年份:2011年
景区名称:洛阳市白云山景区 地区:河南省 A级:5A 评定年份:2011年
景区名称:开封市清明上河园景区 地区:河南省 A级:5A 评定年份:2011年
景区名称:平顶山市尧山-中原大佛景区 地区:河南省 A级:5A 评定年份:2011年
景区名称:洛阳市老君山-鸡冠洞旅游区 地区:河南省 A级:5A 评定年份:2012年
景区名称:洛阳市龙潭大峡谷景区 地区:河南省 A级:5A 评定年份:2013年
景区名称:南阳市西峡恐龙遗迹园-伏牛山-老界岭旅游区 地区:河南省 A级:5A 评定年份:2014年
景区名称:驻马店市嵖岈山旅游景区 地区:河南省 A级:5A 评定年份:2015年
景区名称:安阳市红旗渠-太行大峡谷旅游景区 地区:河南省 A级:5A 评定年份:2016年
景区名称:商丘市芒砀山汉文化旅游景区 地区:河南省 A级:5A 评定年份:2017年
景区名称:新乡市八里沟景区 地区:河南省 A级:5A 评定年份:2019年
景区名称:信阳市鸡公山景区 地区:河南省 A级:5A 评定年份:2022年
景区名称:周口市太昊伏羲陵文化旅游区 地区:河南省 A级:5A 评定年份:2024年
景区名称:新乡市宝泉旅游区 地区:河南省 A级:5A 评定年份:2024年
景区名称:武汉市黄鹤楼公园 地区:湖北省 A级:5A 评定年份:2007年
景区名称:宜昌市三峡大坝-屈原故里文化旅游区 地区:湖北省 A级:5A 评定年份:2007年
景区名称:宜昌市三峡人家风景区 地区:湖北省 A级:5A 评定年份:2011年
景区名称:十堰市武当山风景区 地区:湖北省 A级:5A 评定年份:2011年
景区名称:恩施州神农溪纤夫文化旅游区 地区:湖北省 A级:5A 评定年份:2011年
景区名称:神农架生态旅游区 地区:湖北省 A级:5A 评定年份:2012年
景区名称:宜昌市清江画廊景区 地区:湖北省 A级:5A 评定年份:2013年


景区名称:武汉市中国武汉-东湖生态旅游风景区 地区:湖北省 A级:5A 评定年份:2013年
景区名称:武汉市木兰文化生态旅游区 地区:湖北省 A级:5A 评定年份:2014年
景区名称:恩施州恩施大峡谷景区 地区:湖北省 A级:5A 评定年份:2015年
景区名称:咸宁市三国赤壁古战场景区 地区:湖北省 A级:5A 评定年份:2018年
景区名称:襄阳市古隆中景区 地区:湖北省 A级:5A 评定年份:2019年
景区名称:恩施州腾龙洞景区 地区:湖北省 A级:5A 评定年份:2020年
景区名称:宜昌市三峡大瀑布景区 地区:湖北省 A级:5A 评定年份:2022年
景区名称:荆门市明显陵文化旅游景区 地区:湖北省 A级:5A 评定年份:2024年
景区名称:黄冈市麻城龟峰山景区 地区:湖北省 A级:5A 评定年份:2024年
景区名称:张家界市武陵源-天门山旅游区 地区:湖南省 A级:5A 评定年份:2007年
景区名称:衡阳市衡山旅游区 地区:湖南省 A级:5A 评定年份:2007年
景区名称:湘潭市韶山旅游区 地区:湖南省 A级:5A 评定年份:2011年
景区名称:岳阳市岳阳楼-君山岛景区 地区:湖南省 A级:5A 评定年份:2011年
景区名称:长沙市岳麓山-橘子洲旅游区 地区:湖南省 A级:5A 评定年份:2012年
景区名称:长沙市花明楼景区 地区:湖南省 A级:5A 评定年份:2013年
景区名称:郴州市东江湖旅游区 地区:湖南省 A级:5A 评定年份:2015年
景区名称:邵阳市崀山景区 地区:湖南省 A级:5A 评定年份:2016年
景区名称:株洲市炎帝陵景区 地区:湖南省 A级:5A 评定年份:2019年
景区名称:常德市桃花源旅游区 地区:湖南省 A级:5A 评定年份:2020年
景区名称:湘西州吉首市矮寨•十八洞•德夯大峡谷景区 地区:湖南省 A级:5A 评定年份:2021年
景区名称:湘西州凤凰古城旅游区 地区:湖南省 A级:5A 评定年份:2024年
景区名称:广州市番禺区长隆旅游度假区 地区:广东省 A级:5A 评定年份:2007年
景区名称:深圳市南山区华侨城旅游度假区 地区:广东省 A级:5A 评定年份:2007年
景区名称:广州市白云区白云山景区 地区:广东省 A级:5A 评定年份:2011年
景区名称:梅州市梅县区雁南飞茶田景区 地区:广东省 A级:5A 评定年份:2011年
景区名称:深圳市龙华区观澜湖休闲旅游区 地区:广东省 A级:5A 评定年份:2011年
景区名称:清远市连州市地下河旅游景区 地区:广东省 A级:5A 评定年份:2011年
景区名称:韶关市仁化县丹霞山景区 地区:广东省 A级:5A 评定年份:2012年
景区名称:佛山市南海区西樵山景区 地区:广东省 A级:5A 评定年份:2013年
景区名称:惠州市博罗县罗浮山景区 地区:广东省 A级:5A 评定年份:2013年
景区名称:佛山市顺德区长鹿旅游休博园 地区:广东省 A级:5A 评定年份:2014年
景区名称:阳江市江城区海陵岛大角湾海上丝路旅游区 地区:广东省 A级:5A 评定年份:2015年
景区名称:中山市孙中山故里旅游区 地区:广东省 A级:5A 评定年份:2016年
景区名称:惠州市惠城区惠州西湖旅游景区 地区:广东省 A级:5A 评定年份:2018年
景区名称:肇庆市端州区星湖旅游景区 地区:广东省 A级:5A 评定年份:2019年
景区名称:江门市开平市开平碉楼文化旅游区 地区:广东省 A级:5A 评定年份:2020年
景区名称:河源市万绿湖风景区 地区:广东省 A级:5A 评定年份:2024年
景区名称:桂林市漓江风景区 地区:广西壮族自治区 A级:5A 评定年份:2007年
景区名称:桂林市独秀峰•靖江王城景区 地区:广西壮族自治区 A级:5A 评定年份:2012年
景区名称:南宁市青秀山风景名胜旅游区 地区:广西壮族自治区 A级:5A 评定年份:2014年
景区名称:桂林市两江四湖•象山景区 地区:广西壮族自治区 A级:5A 评定年份:2017年
景区名称:崇左市德天跨国瀑布景区 地区:广西壮族自治区 A级:5A 评定年份:2018年
景区名称:百色市百色起义纪念园景区 地区:广西壮族自治区 A级:5A 评定年份:2019年
景区名称:北海市涠洲岛南湾鳄鱼山景区 地区:广西壮族自治区 A级:5A 评定年份:2020年
景区名称:贺州市黄姚古镇景区 地区:广西壮族自治区 A级:5A 评定年份:2022年
景区名称:柳州市程阳八寨景区 地区:广西壮族自治区 A级:5A 评定年份:2024年
景区名称:崇左市花山岩画景区 地区:广西壮族自治区 A级:5A 评定年份:2024年
景区名称:三亚市南山文化旅游区 地区:海南省 A级:5A 评定年份:2007年
景区名称:三亚市南山大小洞天旅游区 地区:海南省 A级:5A 评定年份:2007年
景区名称:保亭县呀诺达雨林文化旅游区 地区:海南省 A级:5A 评定年份:2012年
景区名称:陵水县分界洲岛旅游区 地区:海南省 A级:5A 评定年份:2013年
景区名称:保亭县海南槟榔谷黎苗文化旅游区 地区:海南省 A级:5A 评定年份:2015年
景区名称:三亚市蜈支洲岛旅游区 地区:海南省 A级:5A 评定年份:2016年
景区名称:三亚市天涯海角游览区 地区:海南省 A级:5A 评定年份:2024年
景区名称:大足石刻景区 地区:重庆市 A级:5A 评定年份:2007年
景区名称:小三峡-小小三峡旅游区 地区:重庆市 A级:5A 评定年份:2007年
景区名称:喀斯特旅游区 地区:重庆市 A级:5A 评定年份:2011年
景区名称:桃花源旅游景区 地区:重庆市 A级:5A 评定年份:2012年
景区名称:万盛黑山谷-龙鳞石海风景区 地区:重庆市 A级:5A 评定年份:2012年
景区名称:金佛山景区 地区:重庆市 A级:5A 评定年份:2013年
景区名称:四面山景区 地区:重庆市 A级:5A 评定年份:2015年
景区名称:龙缸景区 地区:重庆市 A级:5A 评定年份:2017年
景区名称:阿依河景区 地区:重庆市 A级:5A 评定年份:2019年
景区名称:濯水景区 地区:重庆市 A级:5A 评定年份:2020年
景区名称:白帝城•瞿塘峡景区 地区:重庆市 A级:5A 评定年份:2022年
景区名称:武陵山大裂谷景区 地区:重庆市 A级:5A 评定年份:2024年
景区名称:成都市青城山-都江堰旅游景区 地区:四川省 A级:5A 评定年份:2007年
景区名称:乐山市峨眉山景区 地区:四川省 A级:5A 评定年份:2007年
景区名称:阿坝州九寨沟景区 地区:四川省 A级:5A 评定年份:2007年
景区名称:乐山市乐山大佛景区 地区:四川省 A级:5A 评定年份:2011年
景区名称:阿坝州黄龙风景名胜区 地区:四川省 A级:5A 评定年份:2012年
景区名称:绵阳市羌城旅游区 地区:四川省 A级:5A 评定年份:2013年
景区名称:阿坝州汶川特别旅游区 地区:四川省 A级:5A 评定年份:2013年
景区名称:南充市阆中古城旅游景区 地区:四川省 A级:5A 评定年份:2013年
景区名称:广安市邓小平故里旅游区 地区:四川省 A级:5A 评定年份:2013年
景区名称:广元市剑门蜀道剑门关旅游景区 地区:四川省 A级:5A 评定年份:2015年
景区名称:南充市朱德故里景区 地区:四川省 A级:5A 评定年份:2016年
景区名称:甘孜州海螺沟景区 地区:四川省 A级:5A 评定年份:2017年
景区名称:雅安市碧峰峡旅游景区 地区:四川省 A级:5A 评定年份:2019年
景区名称:巴中市光雾山旅游景区 地区:四川省 A级:5A 评定年份:2020年
景区名称:甘孜州稻城亚丁旅游景区 地区:四川省 A级:5A 评定年份:2020年
景区名称:成都市安仁古镇景区 地区:四川省 A级:5A 评定年份:2022年
景区名称:阿坝州四姑娘山景区 地区:四川省 A级:5A 评定年份:2024年
景区名称:成都市天台山景区 地区:四川省 A级:5A 评定年份:2024年
景区名称:安顺市黄果树瀑布景区 地区:贵州省 A级:5A 评定年份:2007年
景区名称:安顺市西秀区龙宫景区 地区:贵州省 A级:5A 评定年份:2007年
景区名称:毕节市黔西县百里杜鹃景区 地区:贵州省 A级:5A 评定年份:2013年
景区名称:黔南布依族苗族自治州荔波县樟江景区 地区:贵州省 A级:5A 评定年份:2015年
景区名称:贵阳市花溪区青岩古镇景区 地区:贵州省 A级:5A 评定年份:2017年
景区名称:铜仁市江口县梵净山旅游区 地区:贵州省 A级:5A 评定年份:2018年
景区名称:黔东南州镇远县镇远古城旅游景区 地区:贵州省 A级:5A 评定年份:2019年
景区名称:遵义市赤水市赤水丹霞旅游区 地区:贵州省 A级:5A 评定年份:2020年
景区名称:毕节市织金洞景区 地区:贵州省 A级:5A 评定年份:2022年
景区名称:黔西南州万峰林景区 地区:贵州省 A级:5A 评定年份:2024年
景区名称:昆明市石林风景区 地区:云南省 A级:5A 评定年份:2007年
景区名称:丽江市玉龙雪山景区 地区:云南省 A级:5A 评定年份:2007年
景区名称:丽江市丽江古城景区 地区:云南省 A级:5A 评定年份:2011年
景区名称:大理州崇圣寺三塔文化旅游区 地区:云南省 A级:5A 评定年份:2011年
景区名称:西双版纳州中科院西双版纳热带植物园 地区:云南省 A级:5A 评定年份:2011年
景区名称:迪庆州普达措国家公园 地区:云南省 A级:5A 评定年份:2012年


景区名称:昆明市昆明世博园景区 地区:云南省 A级:5A 评定年份:2016年
景区名称:保山市火山热海旅游区 地区:云南省 A级:5A 评定年份:2016年
景区名称:文山州普者黑旅游景区 地区:云南省 A级:5A 评定年份:2020年
景区名称:腾冲市和顺古镇景区 地区:云南省 A级:5A 评定年份:2024年
景区名称:拉萨市布达拉宫景区 地区:西藏自治区 A级:5A 评定年份:2013年
景区名称:拉萨市大昭寺景区 地区:西藏自治区 A级:5A 评定年份:2013年
景区名称:林芝市巴松措景区 地区:西藏自治区 A级:5A 评定年份:2017年
景区名称:日喀则市扎什伦布寺景区 地区:西藏自治区 A级:5A 评定年份:2017年
景区名称:林芝市雅鲁藏布大峡谷景区 地区:西藏自治区 A级:5A 评定年份:2020年
景区名称:西安市秦始皇帝陵博物院景区 地区:陕西省 A级:5A 评定年份:2007年
景区名称:西安市华清宫景区 地区:陕西省 A级:5A 评定年份:2007年
景区名称:延安市黄帝陵景区 地区:陕西省 A级:5A 评定年份:2007年
景区名称:西安市大雁塔-大唐芙蓉园景区 地区:陕西省 A级:5A 评定年份:2011年
景区名称:渭南市华山风景区 地区:陕西省 A级:5A 评定年份:2011年
景区名称:宝鸡市法门文化景区 地区:陕西省 A级:5A 评定年份:2014年
景区名称:商洛市金丝峡景区 地区:陕西省 A级:5A 评定年份:2015年
景区名称:宝鸡市太白山旅游景区 地区:陕西省 A级:5A 评定年份:2016年
景区名称:西安市城墙•碑林历史文化景区 地区:陕西省 A级:5A 评定年份:2018年
景区名称:延安市延安革命纪念地景区 地区:陕西省 A级:5A 评定年份:2019年
景区名称:西安市大明宫旅游景区 地区:陕西省 A级:5A 评定年份:2020年
景区名称:延安市延川黄河乾坤湾景区 地区:陕西省 A级:5A 评定年份:2024年
景区名称:咸阳市乾陵景区 地区:陕西省 A级:5A 评定年份:2024年
景区名称:嘉峪关市嘉峪关文物景区 地区:甘肃省 A级:5A 评定年份:2007年
景区名称:平凉市崆峒山风景名胜区 地区:甘肃省 A级:5A 评定年份:2007年
景区名称:天水市麦积山景区 地区:甘肃省 A级:5A 评定年份:2011年
景区名称:酒泉市鸣沙山月牙泉景区 地区:甘肃省 A级:5A 评定年份:2015年
景区名称:张掖市七彩丹霞景区 地区:甘肃省 A级:5A 评定年份:2019年
景区名称:临夏州炳灵寺世界文化遗产旅游区 地区:甘肃省 A级:5A 评定年份:2020年
景区名称:陇南市官鹅沟景区 地区:甘肃省 A级:5A 评定年份:2022年
景区名称:甘南州冶力关旅游区 地区:甘肃省 A级:5A 评定年份:2024年
景区名称:青海湖风景区 地区:青海省 A级:5A 评定年份:2011年
景区名称:西宁市塔尔寺景区 地区:青海省 A级:5A 评定年份:2012年
景区名称:海东市互助土族故土园旅游区 地区:青海省 A级:5A 评定年份:2017年
景区名称:海北州阿咪东索景区 地区:青海省 A级:5A 评定年份:2020年
景区名称:石嘴山市沙湖旅游景区 地区:宁夏回族自治区 A级:5A 评定年份:2007年
景区名称:中卫市沙坡头旅游景区 地区:宁夏回族自治区 A级:5A 评定年份:2007年
景区名称:银川市宁夏镇北堡西部影视城 地区:宁夏回族自治区 A级:5A 评定年份:2011年
景区名称:银川市水洞沟旅游区 地区:宁夏回族自治区 A级:5A 评定年份:2015年
景区名称:吴忠市青铜峡黄河大峡谷旅游区 地区:宁夏回族自治区 A级:5A 评定年份:2024年
景区名称:固原市六盘山红军长征旅游区 地区:宁夏回族自治区 A级:5A 评定年份:2024年
景区名称:昌吉回族自治州天山天池风景名胜区 地区:新疆维吾尔自治区 A级:5A 评定年份:2007年
景区名称:吐鲁番市葡萄沟风景区 地区:新疆维吾尔自治区 A级:5A 评定年份:2007年
景区名称:阿勒泰地区喀纳斯景区 地区:新疆维吾尔自治区 A级:5A 评定年份:2007年
景区名称:伊犁哈萨克自治州那拉提旅游风景区 地区:新疆维吾尔自治区 A级:5A 评定年份:2011年
景区名称:阿勒泰地区可可托海景区 地区:新疆维吾尔自治区 A级:5A 评定年份:2012年
景区名称:喀什地区金湖杨景区 地区:新疆维吾尔自治区 A级:5A 评定年份:2013年
景区名称:乌鲁木齐市天山大峡谷 地区:新疆维吾尔自治区 A级:5A 评定年份:2013年
景区名称:巴音郭楞蒙古自治州博斯腾湖景区 地区:新疆维吾尔自治区 A级:5A 评定年份:2014年
景区名称:喀什地区喀什古城景区 地区:新疆维吾尔自治区 A级:5A 评定年份:2015年
景区名称:伊犁哈萨克自治州喀拉峻景区 地区:新疆维吾尔自治区 A级:5A 评定年份:2016年
景区名称:巴音郭楞蒙古自治州巴音布鲁克景区 地区:新疆维吾尔自治区 A级:5A 评定年份:2016年
景区名称:喀什地区帕米尔旅游区 地区:新疆维吾尔自治区 A级:5A 评定年份:2019年
景区名称:克拉玛依市世界魔鬼城景区 地区:新疆维吾尔自治区 A级:5A 评定年份:2020年
景区名称:博尔塔拉蒙古自治州赛里木湖景区 地区:新疆维吾尔自治区 A级:5A 评定年份:2021年
景区名称:昌吉回族自治州江布拉克景区 地区:新疆维吾尔自治区 A级:5A 评定年份:2022年
景区名称:阿克苏地区天山托木尔景区 地区:新疆维吾尔自治区 A级:5A 评定年份:2024年
景区名称:兵团十师185团白沙湖景区(阿勒泰地区) 地区:新疆生产建设兵团 A级:5A 评定年份:2017年
景区名称:兵团阿拉尔市塔克拉玛干•三五九旅文化旅游区 地区:新疆生产建设兵团 A级:5A 评定年份:2021年

一共有多少个景区?358


注意这些只包含了5A

2025最新查看小米/红米手机电池健康度和循环次数方法

作者 Allen Hua
2025年3月7日 14:01

先说明一下,网上的一些教程已经过时,从MIUI各个版本迭代到如今 HyperOS 改了又改,很多方法失效了。通过拨号键盘输入 *#*#6485#*#* 现在已不展示 MF_05 和 MF_06 的值。

系统里的【电池保护】功能只使用通俗语言描述了电池健康度,没有显示剩余容量的百分比。

电池保护功能只使用通俗语言描述电池健康-压缩后.jpg

当前是2025年3月,我经过实践得知,通过拨号键盘输入 *#*#284#*#* ,手机会生成Bug检测报告,仔细查阅这份 txt 报告,能得到当前手机容量和循环次数。

生成bug检测报告大概率很慢,需要耐心等待,系统通知栏会有进度条。生成成功之后,zip 文件存在于 内部存储器/MIUI/debug_log/bugreport-2025-03-07-120503.zip,我是把这个文件拷贝到了电脑上。然后解压缩此 zip 文件,得到 bugreport-Redmi K70-2025-03-07-121000.zip,继续解压缩这个 redmi k70 的 zip 文件,得到 bugreport-vermeer-UKQ1.230804.001-2025-03-07-12-05-04.txt 这个文件。不同型号这个文件名不同,你需要查看的是 bugreport 开头的并且扩展名是 .txt 的文件。使用 vscode 或者其他文本编辑器搜索这个文件

1️⃣ 搜索 battery capacity 能够得到电池当前容量
k70电池现今剩余容量-压缩后.jpg

2️⃣ 搜索 cycle count 能得到手机循环次数,实际上这里的 Full charge 的值也是现在手机电池的最大容量,4825000就是 4825毫安时,除以出厂时的典型容量5000毫安时可得,容量还剩 96.5%

电池循环次数cycle count-压缩后.jpg

我的 K70 是2023-12-02到手的,典型容量是5000毫安时。手机电池一般是三元锂软包,我的经过了402次循环还剩96.5%的容量,说明我的电池使用习惯还不错。

PS: 今天2025-03-07,距离2023-12-02已经过了461天,这段时间K70一直是我的主力机。

开始时间:2023年12月02日 00:00
结束时间:2025年03月07日 00:00

相差年数:2年
相差月数:15月
相差周数:65周余6天
相差天数:461天
相差小时:11064时

完美解决 seafile FILE_SERVER_ROOT 配置导致的内网外网不能同时访问和上传下载的问题

作者 Allen Hua
2024年10月13日 11:48

我的 seafile 安装在内网,服务地址是 http://10.10.10.5:8088,然后我使用 frp 将其暴露在了公网 https://seafile.940304.xyz

正常情况下在任何联网设备上都可以通过域名 seafile.940304.xyz 访问,并且能够上传和下载。但是当我处于 10.10.10.0/24 家里的内网时,我发现上传文件走了公网(seafile.940304.xyz所在服务器),所以数据包兜了个圈再回到我家,这样的表现就是上传下载文件都非常缓慢,最大速率刚好是我的公网机器的带宽。我发现这是 seafile 系统设置当中 FILE_SERVER_ROOT 这个变量定义成了 https://seafile.940304.xyz/seafhttp 导致的,于是寻求解决办法。

seafile系统设置.jpg

一个临时办法:

当我处于家庭内网时,如果需要上传大文件,我可以手动改一下系统配置,将 FILE_SERVER_ROOT 改成 http://10.10.10.5:8088/seafhttp,这样可以临时解决上传速度慢的问题。

但是这样未免有点低效。我开始上网搜索解决办法,看到如下这些相似的帖子:

思索再三之后,配合 gpt-4o 对我的一些建议,我发现一个不错的解决办法,因为我的家庭网络使用了 openwrt 作为网关路由器,并且当时构建的镜像使用 nginx 替代了原本的 uhttpd 作为 web server,这样就更加接近我的目标了。简单说下实现思路

  1. seafile 的系统设置当中,SERVICE_URL 保持公网地址 https://seafile.940304.xyz/FILE_SERVER_ROOT 的值保持公网地址 https://seafile.940304.xyz/seafhttp。此时非内网的公网下访问、上传、下载都没有问题
  2. 当我处于内网,将 seafile.940304.xyz 域名直接映射到 10.10.10.1,这是我的 openwrt 地址
  3. 通过 nginx 反向代理,将来自seafile.940304.xyz 的请求全都转发到 10.10.10.5:8088

以下是详细步骤。

step 1

填入公网的地址即可。SERVICE_URL 填入公网地址 https://seafile.940304.xyz/FILE_SERVER_ROOT 的值填入公网地址 https://seafile.940304.xyz/seafhttp,然后保存。

step 2

打开 openwrt 后台管理页面,进入 网络 -> DHCP/DNS -> 主机名映射,添加一条记录,主机名 seafile.940304.xyz,IP地址 10.10.10.1 然后保存。

dhcp-dns配置域名映射.jpg

这个操作是否生效了可以在本地局域网任何一台机器使用命令 nslookup seafile.940304.xyz 检查,返回结果是 10.10.10.1 则说明配置正常且生效了。否则可能还是域名对应的公网地址

nslookup 查询结果.jpg

step 3

nginx 配置如下,文件名 /etc/nginx/conf.d/seafile-on-pvedebian11.conf,其中 ssl 证书和私钥 key 部分是我从我的公网机器上 copy 过来的。

server {
    listen 443 ssl;
    server_name seafile.940304.xyz;

    ssl_certificate /etc/letsencrypt/live/940304.xyz/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/940304.xyz/privkey.pem;
    access_log /var/log/nginx/seafile_access.log;
    error_log /var/log/nginx/seafile_error.log;

    location / {
        proxy_pass http://10.10.10.5:8088;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    location /seafhttp {
        proxy_pass http://10.10.10.5:8088/seafhttp;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

然后检查 nginx 配置是否正确和重载 nginx 服务即可。

OpenWrt nginx配置.jpg

在内网使用公网域名正常访问,并且是反向代理过的,访问、上传和下载速度都极快。可以通过 openwrt 上的 nginx 日志验证。

seafile使用公网域名正常访问.jpg

检查 openwrt 上 nginx 的日志文件 /var/log/nginx/seafile_access.log

[root@openwrt_ai_dk_20240831:11:54 AM /etc/nginx/conf.d] # tail -n 10 /var/log/nginx/seafile_access.log
10.10.10.108 - - [13/Oct/2024:11:03:55 +0800] "GET /api/v2.1/admin/web-settings/ HTTP/1.1" 200 1176 "https://seafile.940304.xyz/sys/web-settings/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36"
10.10.10.108 - - [13/Oct/2024:11:03:55 +0800] "GET /media/img/seafile-logo.png?t=1728788662258 HTTP/1.1" 200 12612 "https://seafile.940304.xyz/sys/web-settings/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36"
10.10.10.108 - - [13/Oct/2024:11:03:55 +0800] "GET /media/favicons/favicon.png?t=1728788662258 HTTP/1.1" 200 45439 "https://seafile.940304.xyz/sys/web-settings/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36"
10.10.10.108 - - [13/Oct/2024:11:03:55 +0800] "GET /media/custom/login-bg.jpg?t=1728788662258 HTTP/1.1" 200 338345 "https://seafile.940304.xyz/sys/web-settings/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36"
10.10.10.108 - - [13/Oct/2024:11:05:19 +0800] "GET / HTTP/1.1" 200 2227 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36"
10.10.10.108 - - [13/Oct/2024:11:05:20 +0800] "GET /api/v2.1/notifications/ HTTP/1.1" 200 689 "https://seafile.940304.xyz/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36"
10.10.10.108 - - [13/Oct/2024:11:05:20 +0800] "GET /api/v2.1/repos/?type=mine HTTP/1.1" 200 1394 "https://seafile.940304.xyz/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36"
10.10.10.108 - - [13/Oct/2024:11:24:32 +0800] "GET / HTTP/1.1" 200 2229 "https://seafile.940304.xyz/sys/web-settings/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36"
10.10.10.108 - - [13/Oct/2024:11:24:32 +0800] "GET /api/v2.1/notifications/ HTTP/1.1" 200 689 "https://seafile.940304.xyz/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36"
10.10.10.108 - - [13/Oct/2024:11:24:32 +0800] "GET /api/v2.1/repos/?type=mine HTTP/1.1" 200 1394 "https://seafile.940304.xyz/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36"

并且,在内网依然可以使用内网IP和端口访问,并且此时上传和下载还是走 https://seafile.940304.xyz/seafhttp 匹配到的 nginx 反向代理,即 http://10.10.10.5:8088/seafhttp,所以还是走的内网,速度依然最佳。

seafile使用内网ip端口正常访问.jpg

于是这个问题通过设置公网地址+公网域名映射内网ip+nginx反向代理完美解决。

纯css实现typecho博客文章文字spoiler剧透效果

作者 Allen Hua
2024年8月25日 16:56

我发现一些论坛,还有 telegram,都支持文字 spoiler 效果,那什么是文本 spoiler?

在英文中,“spoiler”这个词原本的含义是指“破坏者”或“毁坏者”。在不同的上下文中,它可以指代能够破坏某种事情、情节、计划或体验的因素。

近年来,随着社交媒体和娱乐讨论的普及,“spoiler”一词常常用于指代剧透,特别是在讨论电影、电视剧、小说等作品时。

因此,虽然“spoiler”最初的意思是“破坏者”,但现代用法主要与“剧透”相关,体现了该词在流行文化中的演变。

在Telegram客户端中,文字的spoiler效果可以通过特定的格式来实现。用户可以将某些文本标记为spoiler,使其在聊天中不直接显示,而是被一个模糊的、可点击的框包裹。这种设计的作用主要有几个方面:

  1. 避免剧透:当讨论电影、电视剧、书籍或其他故事情节时,使用spoiler效果可以有效避免给其他人带来剧透的困扰。只有在有兴趣的人点击内容时,才会显示具体的信息。
  2. 增强互动性:通过在聊天中使用spoiler,用户可以增加互动性,鼓励其他人点击查看内容,从而引发讨论。
  3. 保护隐私:在某些情况下,用户可能希望分享敏感信息或私人事项,而使用spoiler效果可以在某种程度上保护这些信息,使其不那么显眼。

我想在typecho中实现这个效果。既然markdown不支持,那么我们就用原生css和html实现吧。

增加全局样式

我考虑了一下,还是鼠标直接悬浮(当然也支持点击)就直接展示原文,这样更加简单直接。有一些论坛的实践(比如 linux.do )确实是需要点击后才显示原文。

登录typecho后台,进入博客的样式设置页面(控制台 -> 外观 -> 设置外观),url路由是 https://xxx.com/admin_path/options-theme.php ,其中 admin_path 默认是 admin,如果你像我一样想增强博客安全,可以更改一下这部分的路由,改成复杂字符串或者自己的名字之类的字符串,目的是为了不让别人轻易发现博客后台登录地址。

在全局css 样式中定义如下样式,这是我精心调试过的效果。效果演示放在后文。

.spoiler {
    position: relative; /* 使得伪元素可以定位 */
    background-color: rgba(200, 200, 200, 0.3); /* 浅灰色半透明背景 */
    color: rgba(0, 0, 0, 0.5); /* 半透明黑色文字 */
    user-select: none; /* 禁止选中文字 */
    overflow: hidden; /* 隐藏溢出的内容 */
    cursor: pointer; /* 鼠标悬停时光标变为手型 */
    filter: blur(3px); /* 添加模糊效果 */
    padding: 5px; /* 为文本添加内边距以增强效果 */
    transition: filter 0.3s ease; /* 添加平滑过渡效果 */
}

.spoiler:hover {
    background-color: inherit; /* 悬停时使用父元素的背景色 */
    color: inherit; /* 悬停时显示原色 */
    filter: blur(0); /* 悬停消除模糊效果 */
}

保存即可。后面就是写文章时直接引用该class即可。

文章内需要处引用

我习惯使用 <span> 标签。比如原文是 我才知道周也的父亲是叫周秦快。,如果你是写影评,为了避免剧透把周秦快做spoiler效果,那就写如下内容

我才知道周也的父亲是叫<span class="spoiler">周秦快</span>。

效果演示

我才知道周也的父亲是叫周秦快


ok,这便是我想要的效果。

我对Typecho Facile主题的一些修改,图片懒加载优化,样式定制

作者 Allen Hua
2024年8月16日 10:22

使用 Facile 主题已经有一年多了应该,首先感谢作者的开发,目前我使用得挺好。我最近刚由 2.1.12 切换到 2.2 版本,但是图片懒加载功能似乎一直没有生效?直到我最近写了一篇包含94张图片的文章,才发现浏览体验受到了很大的影响。

我也提了一个 issue,并给出了我的解决方法, https://github.com/changbin1997/Facile/issues/12 作者回复他那边没问题,那很可能是我这边什么插件导致了 replaceImgSrc 方法不起作用,或者其他兼容性问题,但最后好在我解决了,本文就分享一下我的解决方法,并且给出我做的其他小细节定制。

图片懒加载优化

引入懒加载js文件

进入容器(或者你是宿主机直接安装就去宿主机找)找到文件 usr/themes/Facile/components/header.php

<head> 标签下引入脚本,详细如下

找到 <link rel="stylesheet" 这一行,以及 <!--自定义CSS--> 这一行,在其中插入 <script src="https://cdnjs.cloudflare.com/ajax/libs/lazysizes/5.2.2/lazysizes.min.js" async></script> 修改后如下

<link rel="stylesheet" href="<?php $this->options->themeUrl('assets/css/style-1722355012.css'); ?>" type="text/css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/lazysizes/5.2.2/lazysizes.min.js" async></script>
<!--自定义CSS-->
<?php if ($this->options->cssCode): ?>

修改 replaceImgSrc 方法

找到 usr/themes/Facile/functions.php 文件,或者直接在 typecho 后台管理页修改,也就是 控制台 -> 外观 -> 编辑当前外观 -> functions.php,具体修改如下,注释掉原本的代码,我修改的 replaceImgSrc 使用了一个 svg loading 图作为占位符(滚动可视区域内的图片尚未完全加载前的转圈圈效果

// 把图片的 src 替换为 data-src,用于图片懒加载,这是Facile 2.1.12以及2.2 版本当中的代码
//function replaceImgSrc($content) {
//    $pattern = '/<img(.*?)src(.*?)=(.*?)"(.*?)">/i';
//    $replacement = '<img$1data-src$3="$4"$5 class="load-img">';
//    return preg_replace($pattern, $replacement, $content);
// }

function replaceImgSrc($content) {
    // SVG 数据URI
    $loadingSVG = 'data:image/svg+xml;charset=UTF-8,' . rawurlencode('<svg version="1.1" id="L9" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 100 100" enable-background="new 0 0 0 0" xml:space="preserve"><path fill="#000" d="M73.438,49.25c0-13.025-10.634-23.562-23.75-23.562c-13.024,0-23.562,10.537-23.562,23.562h6.797 c0-9.276,7.489-16.765,16.765-16.765c9.276,0,16.765,7.489,16.765,16.765H73.438z"><animateTransform attributeName="transform" attributeType="XML" type="rotate" dur="1s" from="0 50 50" to="360 50 50" repeatCount="indefinite" /></path></svg>');

    $pattern = '/<img(.*?)src=["\'](.*?)["\'](.*?[^>])>/i';
    $replacement = '<img$1src="' . $loadingSVG . '" data-src="$2"$3 class="lazyload"><noscript><img$1src="$2"$3></noscript>';
    return preg_replace($pattern, $replacement, $content);
}

这个方法是在 usr/themes/Facile/post.php 的如下地方调用的,也就是主题设置中的图片懒加载功能需要打开

<?php echo $this->options->imagelazyloading == 'on'?replaceImgSrc($GLOBALS['post']['content']):$GLOBALS['post']['content']; ?>

最终我这边图片懒加载功能完美运行,你可以参考我这篇文章,一共94张图,可以很好地预览图片懒加载功能 2024年8月我的宜昌 - 重庆 - 川西小环线自驾旅行分享

给文章添加字数统计和预计阅读时间

usr/themes/Facile/functions.php 尾部追加代码,如下

// 添加文章字数统计,预计阅读用时方法
function  art_count ($cid){
    $db = Typecho_Db::get ();
    $rs = $db->fetchRow ($db->select ('table.contents.text')->from ('table.contents')->where ('table.contents.cid=?',$cid)->order ('table.contents.cid',Typecho_Db::SORT_ASC)->limit (1));
    $text = preg_replace("/[^\x{4e00}-\x{9fa5}]/u", "", $rs['text']);
    $text_num = mb_strlen($text,'UTF-8');
    $read_time = ceil($text_num/400);
    $output = '本文共' . $text_num . '个字,预计阅读时间' . $read_time  . '分钟';
    return $output;
}

然后修改 usr/themes/Facile/post.php 文件,在适当位置调用 art_count 方法,修改后如下

<span class="ml-1" title="发布日期" data-toggle="tooltip" data-placement="top">
    <i class="icon-calendar mr-2" aria-hidden="true"></i>
    <?php $this->date('Y年m月d日'); ?>
</span>
<span class="ml-2" title="作者" data-toggle="tooltip" data-placement="top">
    <i class="icon-user mr-2" aria-hidden="true"></i>
    <a rel="author" href="<?php $this->author->permalink(); ?>" class="mr-2" title="作者:<?php $this->author(); ?>">
        <?php $this->author(); ?>
    </a>
</span>
<span class="ml-2" title="阅读量" data-toggle="tooltip" data-placement="top">
    <i class="icon-eye mr-2" aria-hidden="true"></i>
    <?php echo postViews($this); ?>
</span>
<span class="ml-2" title="文章字数和阅读预计用时" data-toggle="tooltip" data-placement="top">
    <i class="icon-eye mr-2" aria-hidden="true"></i>
    <?php _e(art_count($this->cid)); ?>
</span>

页面footer底部修改

修改文件 usr/themes/Facile/components/footer.php ,我改成了如下

<footer>
    <div class="container py-3">
        <?php if ($this->options->icp): ?>
        <nav class="text-center mb-1">
            <?php $this->options->icp(); ?>
        </nav>
        <?php endif; ?>
        <nav class="text-center">
            <p>Copyright &copy;
                <?php echo "2019 - " . date('Y'); ?> by hellodk.cn | Proudly Powered by <a href="http://www.typecho.org"
                    target="_blank">Typecho</a> &amp;
                <a href="https://hellodk.cn/" target="_blank"> ❤.</a>
                Theme by
                <a class="ml-1" href="https://github.com/changbin1997/Facile" target="_blank">Facile</a>.
            </p>
            <p>
                <?php hasBeenRunningTime2(); ?>
            </p>
        </nav>
    </div>
</footer>

其中调用了一个方法 hasBeenRunningTime2,该方法定义如下,添加到 usr/themes/Facile/functions.php 尾部

// 计算网站已运行多长时间
function hasBeenRunningTime2()
{

        // 设置时区
        date_default_timezone_set('Asia/Shanghai');
        // 在下面按格式输入本站创建的时间
        $site_create_time = strtotime('2019-04-06 14:00:00'); //格式:年 月 日 时 分 秒
        $time = time() - $site_create_time;
        if (is_numeric($time)) {
                $value = array(
                        "years" => 0, "days" => 0, "hours" => 0,
                        "minutes" => 0, "seconds" => 0,
                );
                if ($time >= 31556926) {
                        $value["years"] = floor($time / 31556926);
                        $time = ($time % 31556926);
                }
                if ($time >= 86400) {
                        $value["days"] = floor($time / 86400);
                        $time = ($time % 86400);
                }
                if ($time >= 3600) {
                        $value["hours"] = floor($time / 3600);
                        $time = ($time % 3600);
                }
                if ($time >= 60) {
                        $value["minutes"] = floor($time / 60);
                        $time = ($time % 60);
                }
                $value["seconds"] = floor($time);
                echo 'Site has been running for ';
                echo '<span class="btime">' . $value['years'] . ' years ' . $value['days'] . ' days ' . $value['hours'] . ' hours.</span>';
        } else {
                echo '';
        }
}

访客添加评论时增加简单算数校验

usr/themes/Facile/functions.php 尾部追加方法,代码如下

//评论区简单算术验证,防止评论被滥用
function themeInit($comment){
    $comment = spam_protection_pre($comment, $post, $result);
}

function spam_protection_math(){
    $num1=rand(1,49);
    //数字范围,自定义修改
    $num2=rand(1,49);
    echo "验证码:<input type=\"text\" name=\"sum\" class=\"text\" value=\"\" size=\"25\" tabindex=\"4\" style=\"width:100px\" placeholder=\"$num1 + $num2 = ?\">\n";
    echo "<input type=\"hidden\" name=\"num1\" value=\"$num1\">\n";
    echo "<input type=\"hidden\" name=\"num2\" value=\"$num2\">";
}

function spam_protection_pre($comment, $post, $result){
    $sum=$_POST['sum'];
    switch($sum){
        case $_POST['num1']+$_POST['num2']:
        break;
        case null:
        throw new Typecho_Widget_Exception(_t('对不起: 请输入验证码。<a href="javascript:history.back(-1)">返回上一页</a>','评论失败'));
        break;
        default:
        throw new Typecho_Widget_Exception(_t('对不起: 验证码错误,请<a href="javascript:history.back(-1)">返回</a>重试 。','评论失败'));
    }
    return $comment;
}

然后需要修改 usr/themes/Facile/components/comment-input.php 文件,在适当位置添加对 spam_protection_math 方法的调用,修改后如下

<!--姓名输入-->
<div class="col-12 col-sm-12 col-md-6 col-lg-6 col-xl-6">
    <label for="author" class="d-block">姓名</label>
    <input type="text" class="form-control" placeholder="请输入您的姓名或昵称" name="author" id="author" value="<?php $this->remember('author'); ?>" required>
</div>
<!--邮箱地址输入-->
<div class="col-12 col-sm-12 col-md-6 col-lg-6 col-xl-6">
    <label for="mail" class="d-block">电子邮件地址(不会公开)</label>
    <input type="email" class="form-control" placeholder="请输入您的电子邮件地址" name="mail" id="mail" value="<?php $this->remember('mail'); ?>" <?php if ($this->options->commentsRequireMail): ?> required <?php endif; ?>>
</div>
<!--网站地址输入-->
<div class="col-12 col-sm-12 col-md-6 col-lg-6 col-xl-6">
    <label for="url" class="d-block">网站(选填)</label>
    <input type="url" class="form-control" placeholder="请输入您的网站或博客地址" name="url" id="url" value="<?php $this->remember('url'); ?>" <?php if ($this->options->commentsRequireURL): ?> required <?php endif; ?>>
</div>
<!--数字验证码-->
<div class="col-12 col-sm-12 col-md-6 col-lg-6 col-xl-6">
    <?php spam_protection_math(); ?>
</div>

gravatar 换源

参考了这篇文章 Gravatar 头像镜像源收集 (2024年)

主题

Facile 2.2 版本支持在主题设置中设置 gravatar 源,于是我参考上面文章,修改成了 https://cravatar.cn/avatar/ 国内源,目前 gravatar 头像加载速度很快,解决的很完美。

博客全局

顺便修改一下 Typecho 系统全局的 gravatar 源。比如在 manage-comments.php 评论管理页面就用上了这个地方定义的头像源。修改文件 config.inc.php,改成如下

// 更换头像源
define('__TYPECHO_GRAVATAR_PREFIX__', 'https://cravatar.cn/avatar/');

改后建议重启 typecho 和数据库。


好了,目前我做的一些修改就是这些。其实之前 2.1.12版本时我还做了全站字数统计放在归档页面等小细节,但是目前就这样,先不改了。

本文是给自己做的修改的详细记录,也给广大网友提供了参考。如有问题,欢迎评论。

2024年8月我的宜昌 - 重庆 - 川西小环线自驾旅行分享

作者 Allen Hua
2024年8月15日 00:43
前排提示:本文包含大量图片,一共94张。经过压缩后,一共58.5MB,请注意流量/放心观看。 文章比较流水账,但也有我的一些思考和理解。

前言

去年的这个时候,我一个人去了皖南川藏线和黄山徽州天路等地方旅行。今年早早的有所规划,写了一份还算详尽的计划书。计划着想去但一直没去的川西。至于怎么去最终还是决定和我哥俩人自驾着去,虽然劳累,但是最节省,尽管这样会浪费一些时间在路上。

现在是 2024-08-14 22:13:19,我在旅行归来后总结旅行。在经历过这次舟车劳顿的旅行体验之后,下一次这种去往很远的地方的旅行就再也不会纯自驾了——可能会托运汽车,也可能当地租车,反正都比我们从合肥开车过去要轻松。

这一次的旅行计划是从合肥开到宜昌,走走G348中国地质科普公路,看看三峡库区的雄伟壮丽。再去往重庆,看看美丽山城的夜景。后面就是从重庆直达川西小环线,看海螺沟,翻越折多山垭口,驻足欣赏贡嘎雪山,看看沿途美丽的高原风景……

具体的路线和计划在这篇文章就不写了,本文记录一下旅行当中我拍摄的照片,不过会大致描述一下每天的行程

day 0 - 2024-08-03

今天是假期第一天。我收拾好行李后开车去往合肥,走了国道因为想去看看巢湖……

当天温度有37度左右,但是我按耐不住拿出相机拍下这些田园风光……笔直的公路,绿油油的农田,是我印象中南方夏天的样子。

HDK00761-dk-compressed.jpg

HDK00768-dk-compressed.jpg

这就是在巢湖大道拍摄的照片。这一段巢湖的北岸与南岸的直线距离大概是15km左右,还是能看到对岸的山的。

HDK00782-dk-compressed.jpg

HDK00787-dk-compressed.jpg

中午到达合肥,下午和晚上继续收拾东西,购买部分补给,整装待发。

day 1 - 2024-08-04

6点便洗好出门,怀着激动的心情开启我们的自驾之旅。

第一次到三峡库区,第一次踏上G348国道,一切都很新鲜,风景养眼,就是烈日当空,40度的天气,太劝退人了。本来这样的天气只适合在家吹空调的,但是看到路上也还有一些人在旅行,想想也的确没办法,普通打工人的假期不能自定义,只能硬着头皮上了。

HDK00832-dk-compressed.jpg

从宜昌下高速,直达【听风谷观景台】。

HDK00839-dk-compressed.jpg

在听风谷观景台远眺远方的城市宜昌。

HDK00842-dk-compressed.jpg

宜昌G348。我是在小红书看到很多人推荐G348自驾,刚好我们的行程经过宜昌,于是今天的行程安排可以说相当合理了。

HDK00844-dk-compressed.jpg

长江中的轮船,拖运的一般是什么?

HDK00909-dk-compressed.jpg

HDK01000-dk-compressed.jpg

这条风光大道,标识性的东西做得挺好的,非常多可让人打卡留恋的场景。

HDK01016-dk-compressed.jpg

晚上准备夜宿【屈原故里】—— 秭归县,傍晚时分感受着江岸的城市,岁月静好,幽静自然,实在是太美好了。如果能不上班该多好啊😭️

HDK01065-dk-compressed.jpg

山城就是有高低层次,对于长久生活在平原地区的人们来说一定是一道亮丽的风景。

HDK01070-dk-compressed.jpg

晚上在秭归县街头走走逛逛,发现小县城真的好有活力,还有不错的商业,只是屈原故里等景点未能打卡,略有遗憾。以后有缘再会。

day 2 - 2024-08-05

今天从宜昌秭归准备去往重庆市。一开始的打算还要经过一下恩施市,并且去看一下【恩施大峡谷】,但是开到高速口还耽误了很多时间,大峡谷门票200+,只玩一两个小时太亏了,也太贵了。后面只好放弃恩施的游玩计划,直驱重庆市。而且导航显示,到达重庆市也要傍晚6点了。这时候我的研究生同学汤工也顺利到达重庆,于是我们汇合,逛吃重庆,夜拍重庆。这样的安排就刚刚好。

早上出门走的国道/省道,拍摄的沿途的三峡景观。

HDK01094-dk-compressed.jpg

听我宜昌的朋友说,前阵子刚泄过洪,所以江水看起来才是浑浊的。不然这段的江水,平时清澈得很。

HDK01133-dk-compressed.jpg

傍晚到达重庆,我们坐了一个公交去往【山城步道】。在重庆坐公交和地铁都是有意思的。

HDK01165-dk-compressed.jpg

透过公交车的玻璃拍摄,尽管玻璃表面不那么干净,但依然能感受到重庆山城的魅力。这段是乘坐的重庆市322路公交,在重庆长江大桥上。

HDK01184-dk-compressed.jpg

山城山城,复杂的城市道路会有上上下下,起起伏伏的坡,于是很多视角都是平原城市所很难看到的。这也是在重庆拍照和拍影片容易出片的原因之一。

HDK01199-dk-compressed.jpg

在山城步道观看远处的【南纪门轨道大桥】。

HDK01214-dk-compressed.jpg

夜幕降临,我们打车来到重庆大剧院这边,欣赏重庆最具魅力的夜景打卡地。实际上我准备了很多地点都想去,但是迫于时间紧张,只能打卡一两个确实遗憾。重庆以后还会再来的。

HDK01260-dk-compressed.jpg

重庆这里的夜景,在国内确实排得上前几的。现场人山人海,我们一度怀疑今天是不是什么假期,哪知道只是一个普通的周一晚上。

HDK01345-dk-compressed.jpg

今天晚上夜宿重庆市南岸区,明天我们将驱车去往川西,我们此行真正的目的地。

day 3 - 2024-08-06

6点钟,我们三人打起精神起床,准备直接前往海螺沟景区。重庆到成都段的高速实在是好开,路平车少,轻轻松松跑120~130。

中午我们在泸定县下高速,然后在一家餐馆吃了饱饱的午餐。转了转泸定桥,后面就继续赶路前往海螺沟了。因为景区最后一班车是15:00发车,景区要求15:00之前到达并检票,由于堵车我们差点没去成海螺沟。

检票后还需要坐很长一段时间的景区大巴车,一路上听着车里的介绍,海螺沟景区(5A)在上次地震受损后实现了重建,如今更上一层楼,几乎所有配置均得到了升级。可尽管如此,我们此行依然有所遗憾,他最上面的索道关停了,我们无法到达最高处近距离欣赏贡嘎雪山了。

一起来欣赏海螺沟里面的风景。

HDK01370-dk-compressed.jpg

幸亏有腾龙28-200镜头,天涯镜名不虚传,出门旅游拍照实在是太方便了。这种大江大河的场景,能拍到比大光圈更加重要。

HDK01375-dk-compressed.jpg

高原小湖泊,海螺沟景区里的小湖。

HDK01421-dk-compressed.jpg

这水有点不太清澈,应该是上游有什么活动导致的。

HDK01423-dk-compressed.jpg

看往景区上游的方向,可惜今天不能到达了。

HDK01430-dk-compressed.jpg

到了川西和藏区,玛尼堆随处可见。在川西和藏区,玛尼堆是一种具有重要宗教和文化意义的石堆。它们通常由信徒在朝圣或旅行途中堆砌而成,象征着对佛教、特别是藏传佛教的敬仰。

HDK01439-dk-compressed.jpg

HDK01452-dk-compressed.jpg

天空美的我说不出话——奈何本人没啥文化,只能说一句美得像画。

HDK01537-dk-compressed.jpg

这边的雪山融水是清澈的。使用慢快门拍出了流水“丝绸”般柔和、平滑的效果。

HDK01549-dk-compressed.jpg

从景区下山后,我们开车走榆磨路去康定市区,今晚将夜宿康定。

HDK01570-dk-compressed.jpg

虽然在海螺沟没有看到雪山,但是天空作美,我们在榆磨路路边看到了“拨开乌云见雪山”,甚至是日照金山!实在是有些激动。第一次看到日照金山的我被深深打动——人们为什么那么向往雪山,因为他就在那里。

HDK01573-dk-compressed.jpg

今天下午乃至晚上的行程有些危险,全程有好几段路路况很差,我们只是一辆轿车。

  • 大车很多,会车很慢
  • 路边很多动力不强的油车打开前机盖给发动机和变速箱散热
  • 快到山顶的时候还遇到大雾,视野变得相当差
  • 好在我不紧不慢的节奏,以及稳定的驾驶,我们在晚上9点多安全到达康定市区
  • 一路上还有一个同样皖A车牌的哥们跟着我们一起下山。在中途堵车的时候他就在后面喊“合肥老乡”了,hhhh。最后因为晚上时间不够就没有在一起聚餐。第二天我们的行程和他们的也不一样,于是就此分别

然后出去觅食,我们吃到了味道极好的【牦牛肉面】。今晚夜宿康定。

day 4 - 2024-08-07

今天从康定到新都桥,路程较少,但中途会有很多观景台可以停车打卡。

早上在康定情歌广场附近拍的。昨晚住在新城,康定情歌广场所处的位置在下游,比较老的城区里。

HDK01597-dk-compressed.jpg

大渡河流经康定市,在此处水面翻涌,水流挺大。

HDK01624-dk-compressed.jpg

康定情歌歌词本打卡。

HDK01627-dk-compressed.jpg

出发去折多山垭口,途中观景台拍摄。

HDK01642-dk-compressed.jpg

去折多山垭口一直在爬坡,居然这里也能拍到雪山!在川西一步一个风景,实在是惊喜,惊喜。

HDK01700-dk-compressed.jpg

快要到垭口的地方,回望上山路,这视野真广阔。该碎碎念腾龙28-200广角端不够广了……

HDK01704-dk-compressed.jpg

从垭口停车休息区开始爬山,因为第一次来海拔4000的高山,我必须慢慢爬,调整呼吸节奏,每一次深呼吸都是尽可能防止高反头痛的发生。在山腰上停留也拍到了远处的雪山。

HDK01732-dk-compressed.jpg

牵着马下山的当地人和巨大的玛尼堆。

HDK01740-dk-compressed.jpg

路过这个小伙子摊位前,我发挥出隐藏e人属性,勇敢的说我可以为你拍两张照片吗?他轻轻地点了点头,然后十分认真的看着我的镜头。我一共拍了三张,每一张他的眼睛都很干净和光亮。我好几个同学朋友说,“这有点像丁真了……”

HDK01752-dk-compressed-mosaic.jpg

这些雪山几乎都是200mm超长焦拍摄的,实际上雪山距离我们还是很远的。

HDK01775-dk-compressed.jpg

俊俏的马儿,背景很美~

HDK01787-dk-compressed.jpg

去往康定机场的路上。

HDK02067-dk-compressed.jpg

在斯丁措拍摄。

HDK02077-dk-compressed.jpg

斯丁措景点附近的牦牛,行走的牦牛肉干。

HDK02082-dk-compressed.jpg

这是去往红海子的路上。

HDK02092-dk-compressed.jpg

通过一些具有玛尼堆景物的前景,想表达一下远处高山的巍峨,表现力应该还可以吧。

HDK02248-dk-compressed.jpg

这是在【进村路】上,一路的高山草甸,太美好了!如果不是高原的阳光太晒,我的感受还要加10分。

HDK02252-dk-compressed.jpg

从【红海子】前往【新都桥镇】,汇入318国道之前会走这一段【进村路】,风景很好,属于旅行中的意外之喜。

HDK02264-dk-compressed.jpg

傍晚我们驱车来到【新都桥镇 - 贡嘎雪山观景台】,观景台本身是免费的,爬上来时还是出现了一点高反的症状,不过为了在山顶看到贡嘎雪山,我也仍然坚持了下来。

HDK02310-dk-compressed.jpg

看到几个小伙子自驾游,也驻足这里拍贡嘎。一个是富士xt5 150-300mm(可能不太对),这个等效全画幅焦距需要乘以1.5裁切因子;另一个是尼康Z5 全画幅,镜头好像是24-200。我们交流着如何拍到更具细节、分辨率更高的雪山山体。还调侃脖子上挂着诸多相机,却依然掏出手机拍照的一些网络名场面,哈哈哈

HDK02325-dk-compressed.jpg

然后我真的拍到了贡嘎雪山的尖尖,虽然没有日照金山那般震撼,但这是贡嘎 7556m 的尖尖,能看到拍到依然非常兴奋。

HDK02330-dk-compressed.jpg

夜晚汤工在新都桥镇住的民宿,我和我哥决定在呷八乡露营。我换上了SONY FE 35mm F1.8 镜头,架上了三脚架,尝试夜拍一下星空。于是拍到了下面几张照片。

HDK02349-dk-compressed.jpg

璀璨的星河,真的美丽。

HDK02360-dk-compressed.jpg

这一张,前景有草,中景有山,背景有银河星星。此行我最喜欢的照片之一。

HDK02363-dk-compressed.jpg

由于偷懒没带睡袋,夜里在帐篷里通过几个毯子保暖还是不够,一夜蜷缩着双脚,艰难的度过了一晚。谁能知道这时候江浙沪晚上的户外还有34度,和这里比起来就是不开空调无法睡觉。来这里避暑果然还是有点先见的。

day 5 - 2024-08-08

昨晚在呷八乡露营,今早有一个大妈牵着马过来问我们是否骑马,被我们婉言拒绝后她图穷匕见,向我们索要20元的露营费🏕️。🤣,没办法我们也只好给了。

今天的计划是打卡一下【塔公草原】、【墨石公园】、【木雅大寺】、【青绕神山】,然后折返直接走318去往泸定,并从泸定上高速回成都。

因为我们的计划是走川西小环线,但是从丹巴县到小金县的路被封了,由于地质灾害造成的道路中断,我们只能绕行北面的317国道,但是这样会增加7个小时的车程,迫于时间上的考量,我们直接放弃了环线后面的内容。真是遗憾,但后会有期。

川西小环线推荐住宿点.jpg

不是很懂,塔公寺门口这个老人转着手里的这个东西…… 手持转经筒?感受到一种虔诚和坚定,有一点震撼我心。

HDK02385-dk-compressed.jpg

塔公草原的某一侧。

HDK02482-dk-compressed.jpg

塔公草原需要20元门票,不建议买票进去。附近太多出片的好地方,没必要花钱进去。

HDK02493-dk-compressed.jpg

好多马儿,这是可以花钱坐上去然后骑到(被人牵着走)塔公草原景区里的山顶上的。

HDK02501-dk-compressed.jpg

骏马1

HDK02505-dk-compressed.jpg

骏马2,白色皮肤版,帅气呀

HDK02508-dk-compressed.jpg

墨石公园打卡成功。我哥用无人机拍了一些场景,我们又节省了门票和时间。

HDK02528-dk-compressed.jpg

两张墨石公园航拍。

墨石公园位于中国四川省甘孜藏族自治州道孚县,是一处独特的自然景观区。它因其独特的地质景观和丰富的文化底蕴而备受游客青睐。公园得名于其广泛分布的黑色岩石,这些岩石在阳光照射下泛着淡淡的金属光泽,像极了墨色的画卷。

墨石公园被誉为“中国的天然地质博物馆”,拥有多种地质遗迹和奇特的岩石形态,如石林、石柱、石峰等。它形成于大约1.4亿年前的侏罗纪时期,经历了长期的地质演化和风化作用,使得这一地区的岩石形状各异,充满了自然奇观。

此外,墨石公园还紧邻丰富的人文景观和多样的少数民族文化,您可以在这里欣赏到藏族、羌族和彝族等少数民族的传统文化和习俗。

总体而言,墨石公园结合了壮丽的自然风光和深厚的文化底蕴,是一个值得探索和体验的旅游胜地。

引用内容来自 GPT4

墨石公园航拍1-压缩后.jpg

墨石公园航拍2-压缩后.jpg

木雅大寺这边还是很震撼的,视野极度广阔,建筑也非常具备特色。

HDK02545-dk-compressed.jpg

经典——藏民的摩托车,寺庙当中的年轻僧人。

HDK02549-dk-compressed.jpg

我叫不上名字的雪山一隅。

HDK02588-dk-compressed.jpg

来到青绕神山,拍到了这张拥有广阔视野的高山草原。

HDK02603-dk-compressed.jpg

从青绕神山这边看到的雪山应该是雅拉雪山。

HDK02623-dk-compressed.jpg

随后一直赶路,直到到达成都。晚上还和另外几名同事汇合,我们在成都吃了美美的一顿火锅。

相聚成都火锅-压缩后.jpg

day 6 - 2024-08-09

今天计划在成都稍微转一转,下午就启程回合肥了。

准备在成都买一点大熊猫周边,哈哈

你在成都?记得带“熊猫”回来哈!

IMG_20240809_123751-dk-compressed.jpg

宽窄巷子附近好多特产店~嘿嘿这也是我第一次来成都🤣

IMG_20240809_123757-dk-compressed.jpg

买了三个熊猫周边。可爱捏

IMG_20240809_124920-dk-compressed.jpg

IMG_20240809_125023-dk-compressed.jpg

IMG_20240809_125249-dk-compressed.jpg

今天成都下了超级大的雨。把汤工送回酒店之后我和我哥踏上了归程。从成都收费站上高速。成都,以后再见了。

IMG_20240809_144424-dk-compressed.jpg

19:36 左右,路过重庆万州这边。

IMG_20240809_193654-dk-compressed.jpg

20:53分穿过隧道到达重庆第一县——云阳县,真是一坐极具三峡特色的县城,以后有空必须再来逛逛。

经过重庆万州的一些省道,路边的村民都拿着蒲扇,围在一起唠家常,我真是很久没有亲眼看到过这样的景象了,只觉得他们的生活非常惬意,虽然平淡但是尽享生活。我们都在城市当牛马,身边除了班味,很少能感受到这样的风土人情。

穿过隧道之后看到如此灯火通明的城市,一瞬间又让我有些感动。有一点绝处逢生的感觉——当你在逆境中待久了,重新回到人类文明集中的世界那种解脱感、安全感。也许最好的生活方式是城市和农村的结合,不能久处城市,更不能久处农村。

IMG_20240809_205342-dk-compressed.jpg

今晚夜宿重庆云阳县。

day 7 - 2024-08-10

早上从云阳出发回合肥。随意瞥见的长江山城——重庆云阳。

mmexport1723244521468-dk-compressed.jpg

早晨07:14的云阳街头。

IMG_20240810_071442-dk-compressed.jpg

吃一份重庆小面再出发。

IMG_20240810_072723-dk-compressed.jpg

在加油站旁边拍到的云阳景色。

IMG_20240810_073124-dk-compressed.jpg

不愧是重庆第一县城,从新城的建筑看还是蛮繁华的。

IMG_20240810_073522-dk-compressed.jpg

经过了白天的不懈赶路,我们在傍晚6点40到达了合肥新桥机场附近。

IMG_20240810_183912-dk-compressed.jpg

随后便是顺利抵达合肥,安全完成我们的宜昌 - 重庆 - 川西小环线之旅。虽有遗憾,但见到了许多未曾见识的风景,值也值也。

day 8 - 2024-08-11

今天在合肥休息,下午走高速回南京。


全程一共走了4148公里,我用高德 web 制作了全程路书,和实际里程还是蛮吻合的。

Screenshot_2024-08-12-10-52-03-186_com.autonavi.minimap-dk-compressed.jpg

本次旅程除了康定-新都桥那天,其余每天都在路上奔波,的确辛苦和疲惫,但就是痛并快乐着。以后类似的旅行,我得花更多的预算,以求一个更加舒服的旅行体验。

引用

感谢阅读。有感兴趣的欢迎在评论区与我讨论。

2022年打卡南京市区人防工程纳凉点

作者 Allen Hua
2024年8月2日 09:51

重要提醒——本文是补档,因为原文 打卡南京市区人防工程纳凉点 访问经常出现问题,原因是所在服务器资源不足。


第一天首探

2022-08-01 20:58:41 update

原视频中的是菠萝山人防工程(鼓楼区广州路229号),这个好像装修不错,具有桌椅还有 wifi。


还记得这个吗?2022-07-11 有个南京同城热搜。我今天去打卡一下南京市区的人防工程纳凉点。

【南京人防工程纳凉点开放至8月底】 同城热度5784 | @江苏新闻

https://s.hellodk.com/2qz3kis0

1.jpg

原微博热搜直链 https://m.weibo.cn/search?containerid=100103type%3D1%26t%3D10%26q%3D%23%E5%8D%97%E4%BA%AC%E4%BA%BA%E9%98%B2%E5%B7%A5%E7%A8%8B%E7%BA%B3%E5%87%89%E7%82%B9%E5%BC%80%E6%94%BE%E8%87%B38%E6%9C%88%E5%BA%95%23

首条微博直链 https://m.weibo.cn/detail/4789784855450027

截图如下

2.jpg

今天我就试图体验打卡一番。

搜了各个地点,挑选了前两天决定前往。

  • 北极岩人防工程(鸡鸣寺那里)
  • 北极西村人防工程(北极西村31号104室)

先去了北极西村,事实上不太好找。

3.jpg

工作人员让我扫了场所码之后我就下阶梯,下了两段楼梯,好家伙,确实好凉快。

4.jpg

工作人员和我说里面有施工🚧️的。可是我没想到,我进去后居然只有我一个市民,其他的都是工人。😂️

5.jpg

等等,这么拉胯?和我在网上看到的不一样呀🤣。。而且这都8月1号了,你7月1号开始整的活,一个月了还是这个进度,有点对不起老百姓了啊。看来我在网上看到的是鸡鸣寺那里的那个,那个还有桌子,还有饮用水之类的,里面的装修也好很多。不过无可厚非,拿来宣传,肯定找最好的。

6.jpg

我放下书包,拿起米家温湿度计 Pro,一开始温度 35.4℃(图片中是35.0,并非一开始的温度),此时下午 4点18。

7.jpg

这里面是真的凉快啊,温度下降的也很快,还有两个工业用的风扇一直吹。4点24的时候温度已经下降到26.3℃了。我决定等到28分,看看十分钟后温度下降到多少。

8.jpg

下午4点28分,温度24.2℃,我已经感觉到冷冷的了😂️,29分时把温度计放回包里表显23.8℃,狠!我书包里还背了 MacBook Pro,我打算来这里上网的,因为网上说还有免费 wifi 🙃️。于是我就出发吧,去鸡鸣寺那个。

9.jpg

这两个人防工程离得不远,骑车不到2公里就到了。

10.jpg

11.jpg

骑车到了这边发现不给进了,写着服务到下午5点。这么热的天不给到9点嘛,你网上是咋宣传的呀,视频里也说的到9点呀,顿生强烈鄙视之感。这个时候不给服务到9点那是啥时候服务到9点。

12.jpg

然后也就没什么好看的了,回吧~~~

这么热的天,还有许多游客来玄武湖、鸡鸣寺游览也是真的勇士。

Allen Hua at 2022-08-01 17 : 55 : 22

第三天再探

第二天下午下了暴雨,但我没灰心,第三天下午又来了。下午的室外确实是无敌的炎热,我选定了菠萝山的人防工程,在高德地图上的 label name 只有 应急掩蔽场所 鼓楼区广州路229号

骑车到虎踞关广州路的丁字路口,找地方停车然后沿着坡道(广州路)往上走,在一处宾馆前面就能看到标识,进入即可。

菠萝山人防工程.jpg

111.jpg

222.jpg

进去是个宾馆,纳凉的地方还要继续往里走。扫场所码,老奶奶说没有口罩不给进,但我没带诶,老奶奶有点不情愿得给了我一个新的口罩😁️,谢谢她老人家。

里面确实要好很多哇,有免费的水、wifi、报刊、桌椅,这点有点像话甚至是非常不错了。里面的空间也比北极西村的要大很多。

333.jpg

444.jpg

里面除了我只有一个年轻人,偷看到屏幕好像是在浏览马蜂窝。

555.jpg

人防工程里都没有手机信号,这个有 wifi 真滴蛮不错,离得近的话不论老少皆宜,而且这个开放到晚上9点,给个大大好评💯️。

针不戳。

2024年带着A7C2+腾龙28-200 再次来到红山森林动物园

作者 Allen Hua
2024年7月29日 00:30

2024年7月27日,我顶着35度高温天气去拍红山的毛孩子们。

上一次来红山森林动物园是21年。当时有记录下来这样一篇: 南京红山森林动物园附近纪实照片分享

这几年红山动物园真是在网上大火呀,经营状况比起前些年大有改善。就在前天那么炎热的天气下,仍然有很多很多游客前来游玩。替红山森林动物园高兴!

拓展阅读:
曾亏3000万的南京红山动物园,如今将它的小动物变成了顶流
票价40,火过迪士尼?中国穷鬼乐园,终于开窍了

这一次带着刚买不久的腾龙28-200mm 镜头,来试试小长焦拍小动物的效果。来时在小红书做了一下停车攻略,停哪里呢?我选择停在了「十字街」道路两侧,🈶️划车位,并且没有收费,美滋滋。千万不要开车去动物园北门,堵死。开车导航去 【碧玉苑】 或者 【御林山庄】 ,这两个小区门前都有设立道路停车位,费用不记得了,好像是一块钱一小时。

这么热的天气下大爷们在下棋,好一闲情雅致。

DSC00580-dk-compressed.jpg

门票40元,美团和线下购买同价。

DSC00585-dk-compressed.jpg

DSC00588-dk-compressed.jpg

大狮子🦁️。

DSC00598-dk-compressed.jpg

脑斧。🐅️

DSC00604-dk-compressed.jpg

这叫什么来着,瘦猫还是啥来着,猫科王国看到的。

DSC00613-dk-compressed.jpg

这是狐獴,也叫细尾獴。站起来时好有趣。这几张看起来长焦真的好啊,能拍到比画质好更重要,当然了,两者全都要也好,可惜要么价格贵,要么这样的产品还没有开发出来。

DSC00625-dk-compressed.jpg

DSC00630-dk-compressed.jpg

DSC00635-dk-compressed.jpg

动物园内小火车的轨道。

DSC00640-dk-compressed.jpg

猴山里的吗喽。🐒️😄️

DSC00648-dk-compressed.jpg

DSC00651-dk-compressed.jpg

这张好喜欢,抓拍到了,热得我满头大汗。

DSC00662-dk-compressed.jpg

长颈鹿。🦒

DSC00666-dk-compressed.jpg

大象。🐘️

DSC00671-dk-compressed.jpg

国宝大熊猫。🐼️ 哈哈 抓拍了好多张。

  1. 玻璃好脏,好难拍一张干净的照片
  2. 一直在吃东西,导致快门时间经常需要好几秒才能正常曝光。最后只好强设2500以上的 ISO,终于拍到几张不错的,噪点没啥明显感知,这就是索尼全画幅的威力吗?看来以后要多用范围内的(比如 50 - 6400)自动 ISO 功能

DSC00686-dk-compressed.jpg

DSC00693-dk-compressed.jpg

吃竹子吃得贼hi

DSC00724-dk-compressed.jpg

没看到小熊猫~ 天太热啦。

DSC00733-dk-compressed.jpg

此时快6点了,将要闭园。我是4点进园的,暴走俩小时。什么鸟🦆不知道。

DSC00741-dk-compressed.jpg

不认识的🦆。

DSC00743-dk-compressed.jpg

碰到一个大哥,牛逼的很,适马sigma 600mm。忘了问他机身是啥……

DSC00749-dk-compressed.jpg

可能是适马 SIGMA 150-600mm F5-6.3 DG OS HSM | Contemporary

官方页面: http://www.sigma-photo.com.cn/lenses/overview?id=40 看了一下京东价格,索尼E口是 8499 元,还不错~~~

适马sigma150-600变焦镜头.jpg

我看他拍鸟这么有兴致,我也赶紧拉到200mm F5.6 试试看打鸟 🤣

DSC00756-dk-compressed.jpg

热🥵热。我来得稍微有些晚,像是考拉🐨️馆,16:30就闭馆了。而且很多动物拍不到,因为他们的家都太大了[笑哭],而且有时候躲在人类看不到的角落[旺柴]。

红山对动物,是尊重,是保护,更是爱护。不是把动物放进一个铁笼子或者钢筋混凝土构成的空间,而是精心给他们创造了一个类似他们原本生活地方的家,感谢这么有爱的动物园~

入手a7c2第一个变焦镜头腾龙28-200体验分享

作者 Allen Hua
2024年7月27日 11:38

我挑选第一颗变焦镜头有参考很多文章、帖子和视频,写了一篇文章记录挑选过程,2024年7月索尼A7C2的第一颗变焦镜头选择 .

过一两周有计划出门旅行,在综合了诸多方面:价格、焦段实用程度、画质表现、光圈大小、镜头发布年月、二手市场流通性/受欢迎程度等等因素,我还是决定先买腾龙 28-200,原厂的 20-70 F4是一开始的打算,但是在旅游一镜走天下方面,还是200mm 更香。

现在腾龙28-200 京东自营价格还是要 5490,综合考虑之后决定买一个靠谱二手。最后就收到了成色很好的腾龙28-200 ~ 🥳

二手腾龙28-200商品说明.jpg

腾龙28-200二手闲鱼.jpg

卖家箱说全,这点很重要。买这种数码类产品,最好原始包装盒保留一下,考虑到未来出二手,会方便一些,也能有一些优势。买家一般优先选那些箱说全的。到货 check 一下……

腾龙28-200到货盒子.jpg

看不出明显的使用痕迹,很不错了。

腾龙28-200到货check 一下.jpg

下面是我拿出去拍的一些照片。

DSC00511-dk-compressed-dk-compressed.jpg

DSC00518-dk-compressed-dk-compressed.jpg

DSC00527-dk-compressed-dk-compressed.jpg

DSC00530-dk-compressed-dk-compressed.jpg

DSC00532-dk-compressed-dk-compressed.jpg

DSC00534-dk-compressed-dk-compressed.jpg

DSC00536-dk-compressed-dk-compressed.jpg

DSC00547-dk-compressed.jpg

DSC00565-dk-compressed.jpg

DSC00574-dk-compressed.jpg

对于这颗镜头的表现,初步给出印象分8分(满分10分)

  • 28-200mm 焦段实用性拉满,满足个人绝大部分使用场景。即将开启的旅行计划在川西拍摄星空,到时候用 FE 35mm F1.8 和这个 28mm F2.8 都试试。这颗大便浇头在28mm广角端拥有F2.8光圈,到时候都试试看效果,实践出真知
  • 画质个人感觉够用,不是专业用户,也不是靠摄影吃饭的用户应该收收味。网络上推崇的器材和装备党实际上是一种攀比行为,容易对新人造成不良引导
  • 体积控制可能很难再优化了,但确实还是蛮大蛮重的。但是在类似规格的情况下,腾龙这颗镜头也才575g,相对而言还是优秀的

这颗镜头官方介绍页 https://www.tamron.com.cn/cameralens/products/a071/index.shtml

总体体验不错,后面拍了新的片子会继续分享。

使用 exiftool 方便快捷写入图片的 exif metadata

作者 Allen Hua
2024年7月15日 14:00

我现在都在用 squoosh 批量压缩照片。但是 squoosh 压缩出来的图片丢失了 exif 数据,不论是网页还是终端 squoosh-cli。关于使用终端 squoosh-cli 批量压缩图片,你可以阅读我写的 [可能是]最好的压缩图片程序,使用 squoosh-cli 批量压缩图片

关于在得到压缩后的图片不丢失exif元数据这个问题,我尝试了其他压缩工具,比如 tinypng.com 也一样无法实现目的。

tinypng.com 的 web,压缩后的图片无法得到元数据。然后我关注到了其 API,https://tinypng.com/developers/reference/java

保留元数据.jpg

我写了段Java代码试了一下,通过调用方法 source.preserve("copyright", "creation", "location"); 可以保存元数据

System.out.println("start to tiny your images...");
        try {
            String path = "c:\\users\\dk\\downloads\\IMG_1989.jpg";
            Source source = Tinify.fromFile(path);
            String lowercasedPath = path.toLowerCase(Locale.ROOT);
            Source sourceWithMetadata;
            if (lowercasedPath.endsWith(".jpg") || lowercasedPath.endsWith(".jpeg")) {
                //location
                sourceWithMetadata = source.preserve("copyright", "creation", "location");
            }
            else {
                sourceWithMetadata = source.preserve("copyright", "creation");
            }
            sourceWithMetadata.toFile("c:\\users\\dk\\downloads\\IMG_1989-dk-compressed.jpg");
        }
        catch (IOException e) {
            throw new RuntimeException(e);
        }

但是经过实践发现只保留下来了图片拍摄时间。我想要的相机信息,镜头信息,拍摄参数(比如快门时间、ISO大小、光圈大小)等还是丢失了。

经过一番研究,我最终转变了思路。 使用 exiftool 工具写入照片的原始exif metadata,我之前居然不知道 exiftool 这么好用的工具。

官网 https://exiftool.org/

ExifTool 由 Phil Harvey 开发,是一款免费、跨平台的开源软件,用于读写和处理图像(主要)、音视频和PDF等文件的元数据(metadata)。ExifTool可以作为Perl库(Image::ExifTool)使用,也有功能齐全的命令行版本。ExifTool支持很多类型的元数据,包括Exif、IPTC、XMP、JFIF、GeoTIFF、ICC配置文件、Photoshop IRB、FlashPix、AFCP和ID3,以及众多品牌的数码相机的私有格式的元数据。

本段介绍source

我在 squoosh 容器当中继续操作。

squoosh 容器基于 alpine 镜像制作,所以使用 apk 安装 exiftool 即可。

# apk add exiftool

然后编写一段 shell 脚本。

2024-08-02 19:18:18 新增一些说明

  • 我做的 dko0/squoosh:v1.12.0 镜像是支持amd64, arm64 and arm v7 arch这三个架构的,但是只有在 arm64 机器上运行的容器安装了vim之后才能正常运行。在amd64机器上pull了此镜像后启动一个容器然后通过apk安装vim会无法运行,都会报错Segmentation fault (core dumped)。关于这个问题我检查了很多东西,发现可能是 alpine linux 和不同架构的相关依赖实现的问题
  • 由于 Alpine Linux 使用的是轻量级的 musl libc,而不是更常见的 glibc,这可能会导致某些软件在运行时出现兼容性问题
  • alpine linux 默认使用 /bin/ash 作为 default shell,而且内置的 vi 等命令都是来自 busybox,简体中文不太好支持。所以下面的 shell 我最终改用 /bin/bash 编写。我放在宿主机 debian 执行了
  • debian 需要通过 apt-get update && apt-get install -y exiftool 安装 exiftool 工具
#!/bin/bash

# 检查是否提供了必要的参数
if [ -z "$1" ] || [ -z "$2" ]; then
    echo "Usage: $0 <input_dir> <output_dir>"
    exit 1
fi

# 从命令行参数中读取输入目录和输出目录
input_dir="$1"
output_dir="$2"

# 检查输入目录是否存在
if [ ! -d "$input_dir" ]; then
    echo "Input directory '$input_dir' does not exist."
    exit 1
fi

# 检查输出目录是否存在
if [ ! -d "$output_dir" ]; then
    echo "Output directory '$output_dir' does not exist."
    exit 1
fi

# 如果 output_dir 以 / 结尾,删除末尾的 /
if [ "${output_dir: -1}" = "/" ]; then
    output_dir="${output_dir%/}"
fi

# 定义要处理的文件扩展名
exts=("jpg" "JPG" "jpeg" "JPEG")

# 遍历所有指定文件扩展名的图片文件
for ext in "${exts[@]}"; do
    for input_file in "$input_dir"/*."$ext"; do
        # 检查文件是否存在
        if [ ! -f "$input_file" ]; then
            continue
        fi

        # 提取文件名,不带路径
        filename=$(basename "$input_file")

        # 构建目标文件路径
        output_file="${output_dir}/${filename%.*}-dk-compressed.jpg"

        # 检查压缩后的文件是否存在,以防万一
        if [ ! -f "$output_file" ]; then
            echo "File $output_file does not exist, skipping..."
            continue
        fi

        # 复制 EXIF 元数据
        exiftool -TagsFromFile "$input_file" -all:all "$output_file"
        echo "$output_file exif metadata write success."

        # 删除生成的备份文件(-TagsFromFile 操作会创建一个备份文件)
        rm "${output_file}_original"
    done
done

将此 shell 文件保存为 /home/dk/copy_exif.sh

使用时的命令:~/copy_exif.sh . ./output/

解释说明:

  1. 该脚本从命令行参数中读取输入目录和输出目录,可以是相对路径。会将输入路径下的所有 xxx.jpg 的元数据读取出来,写入当前文件夹下的 output 目录中的 xxx-dk-compressed.jpg 文件中,这样刚好能确保 exif metadata 有正确的归属关系
  2. 记住添加可执行权限 chmod +x /home/dk/copy_exif.sh
  3. 我使用 dk 这个用户执行,因为 squoosh-cli 也是在 dk 这个用户下执行的。不在 root 下操作是不希望破坏文件权限和所有者,宿主机内的文件系统还通过 samba 挂载了,其他设备访问时如果是 root 用户操作的会无法删除文件(没有写权限)

经过 exiftool 写入exif元数据之后,文件会变大一丢丢。通过下面一个case 粗略估计文件体积会增大5%。

写入exif metadata元数据前后文件大小对比.jpg

可以看到压缩后的照片也具有了元数据了,这对我将文件存放在 immich 里时可以有更好的读写性能,并且在浏览照片时也能看到照片 exif 信息,这对我很重要。

保留了元数据.jpg

当然具备完整细节的原图还在SD卡/电脑里备份着。

使用JavaScript抓取易车销量排行榜数据到一个页面上展示

作者 Allen Hua
2024年7月10日 14:00

易车销量排行榜页面是 https://car.yiche.com/newcar/salesrank/ ,由于易车 web 端没有提供一页展示多少条数据的功能,所以浏览这个排行榜时就得一页一页的翻,想查某一车型的销量数据很不方便。

但是易车手机app是可以一页展示的,而且也能搜索车型,不过碍于手机屏幕过小,我还是希望在 web 上查看,可以利用 Control + F 功能,更快速的寻找想要的数据。

  • 首页 https://car.yiche.com/newcar/salesrank/
  • 非首页 https://car.yiche.com/newcar/salesrank/?page=xxx

当前时间是 2024-07-10 13:47:01,默认展示的是上一个月的数据,也就是2024年6月份的销量排行榜。

如果想抓取2024年5月的数据,请求地址是

  • 首页 https://car.yiche.com/newcar/salesrank/?date=2024-05-01
  • 非首页 https://car.yiche.com/newcar/salesrank/?date=2024-05-01&page=xxx

其中 xxx 代表页码。

我抓取了 2024年6月的国内汽车销量数据,生成了一个静态页面。欢迎查阅:2024年6月国内汽车销量排行榜-按车型分

下面是源码

(async () => {
    const totalPages = 62; // 一共62页

    const fetchDataForPage = async (pageNum) => {
        let pageUrl = `https://car.yiche.com/newcar/salesrank/?page=${pageNum}`;
        const response = await fetch(pageUrl);
        const text = await response.text();
        const parser = new DOMParser();
        const doc = parser.parseFromString(text, 'text/html');
        // 返回整个 div.rk-list-box 元素
        return doc.querySelector('div.rk-list-box');
    };

    // 定义睡眠函数
    const sleep = (ms) => new Promise(resolve => setTimeout(resolve, ms));

    // 获取第一页的数据,并初始化页面
    let mainListBox = document.querySelector('div.rk-list-box');

    if (!mainListBox) {
        console.error('初始化时无法找到 div.rk-list-box 元素');
        return;
    }

    for (let i = 2; i <= totalPages; i++) {
        console.log(`正在抓取第 ${i} 页的数据...`);
        const pageListBox = await fetchDataForPage(i);

        if (pageListBox) {
            // 查找并更新所有懒加载图片
            const lazyImages = pageListBox.querySelectorAll('.rk-img.lazyload');
            lazyImages.forEach(img => {
                if (img.dataset.original) {
                    img.src = img.dataset['original'];
                }
            });
            // 将新页的数据追加到现有的列表中
            mainListBox.append(...pageListBox.children);
        } else {
            console.error(`第 ${i} 页的数据抓取失败`);
        }

        // 每抓取一页后等待15秒
        await sleep(15000); // 15秒
    }

    console.log('所有数据抓取完毕!');
})();

页面数据抓取完成之后,利用 chrome extension SingleFile 保存成一个 html 文件。

  • 源码地址 https://github.com/gildas-lormeau/SingleFile
  • Chrome Web Store 地址 https://chromewebstore.google.com/detail/singlefile/mpiodijhokgodhhofbcjdecpffjipkle

Web Extension for saving a faithful copy of a complete web page in a single HTML file

然后我将这个htm文件托管到了自己的服务器上,尽管这个文件有 44MB,但是加载好之后通过 Control + F 查找车型和销量数据实在是太方便了。

使用JavaScript脚本快速获取B站观看历史记录页面的视频标题和URL

作者 Allen Hua
2024年7月9日 17:58

哔哩哔哩观看历史记录的页面地址是 https://www.bilibili.com/account/history

有时候我想分享最近观看的几个视频给朋友,尤其是在我使用关键字搜索之后的列表,会有好几个条目,一个一个打开并复制出一个干净的标题和干净的视频地址太麻烦了。于是我用js写了一段脚本快速获取页面上的视频标题和URL

源码如下

// 使用 querySelectorAll 选择符合路径的 div
const targetDiv = document.querySelector('#history_list');

// 检查 targetDiv 是否存在
if (targetDiv) {
    // 在 targetDiv 内选择所有的 li 标签
    const liTags = targetDiv.querySelectorAll('li');
    let title_url = '';

    // 遍历每一个 li 标签,获取其内容
    liTags.forEach(liTag => {
        const titleA = liTag.querySelector('a.title'); // 获取 class 名称是 title 的那个 a 标签
        if (titleA) {
            let url = titleA.getAttribute('href'); // 获取链接地址
            let title = titleA.textContent;
            if (url) {
                let originStr = url.trim(); // 原始字符串
                url = `https:${originStr.replace(/\?.*$/, '')}`; // 利用正则格式化,前面拼上 https: 顺便把半角问号和后面的字符串都remove掉
                title_url += '- ' + title + ' ' + url + '\n'; // 拼接英文减号和空格,再拼上视频标题和空格,最后拼上视频地址
            } else {
                title_url += '- No title attribute\n'; // 如果没有 title 属性,添加提示
            }
        }
    });
    console.log(title_url)
} else {
    console.log('无法找到目标 div');
}

使用方法

  1. 打开历史记录页面,搜索某关键词(搜索是可选项,不搜索也可以,但是js脚本只会收集出页面已加载的内容)
  2. 按下键盘F12,切换到 Console 标签
  3. 粘贴如上代码后回车即可。如果此网站不允许粘贴,临时在Console中键入allow pasting 回车即可。不过B站的web是允许粘贴的

举例,我使用富士搜索出如下视频

富士搜索结果.jpg

执行js代码之后快速获取了这些视频的标题和URL

执行后效果.jpg

刚好我顺手记录一下这些视频的地址。下面各二级标题就是我使用标题搜出来的结果(基于我最近观看的视频)。不太清楚,B站历史记录的最大条目好像是 1000?(有知道的朋友欢迎留言评论)

富士

索尼

直出

创意外观

ok, that's all.

入门三脚架推荐|云腾VCT-668配合索尼A7C2+FE 35mm F1.8 第一次夜景出片

作者 Allen Hua
2024年7月7日 13:59

这几天很喜欢AI陶喆演唱的《泪桥》,陶比特泪目😭️,今天的文章我想用它作bgm,下面请收听

一些说明

  • 原曲来自伍佰2003年发布的同名专辑《泪桥》
  • 上面AI陶喆唱的编曲来自B站火鸡,https://space.bilibili.com/247308944 火鸡编曲的泪桥 https://www.bilibili.com/video/BV1P4421X79K/

最近长三角地区受副热带高压影响,都是晴好的天气,虽然巨热,但是天空晴朗,空气能见度高。17年毕业季班级出资送了我一个三脚架,但是弄丢了已经,今天自费买一个,哈哈。

依然是选择入门性价比的三脚架产品,不用来干活,不用来吃饭,个人用用玩玩就够了。

在预算100多的条件下,我只留下了两个候选:

  • 云腾 VCT-668
  • 优篮子 Ulanzi 青葱-影

优篮子整体设计和用料做工会更好一点,还有白色款,颜值真的高很多。但是现在价格298,查了一下历史低价,也看了B站一些视频的评论区,有些人实付款170就买到了……我现在原价购买就是大冤种。

也查了云腾 VCT-668的历史低价,100,现价118,于是果断入手。

周四晚上23点之前买的,希望周五下午就能到货,只有京东自营做得到了。

IMG_20240705_170957-dk-compressed.jpg

下了班之后我直奔蒋王庙,顾不上吃碳水,想着这大热天流汗还能燃脂……

35 36度的天,背着书包+三脚架爬山已经很难了。这些人为了赚点小钱,背着这么多矿泉水在山间各休息点卖,真是好不容易啊。

IMG_20240705_192523-dk-compressed.jpg

爬到山顶天完全黑了,为了早些到达山顶我还一路超人,导致周末肌肉酸痛[捂脸]

手持1.3s长曝光。

DSC00362-dk-compressed.jpg

感觉晚上天空反而没有那么纯净。头陀岭这两个观景台,护栏太高了,人又很多,不太好找机位。凑合拍了几张,感觉还没有小米14 Ultra 拍得好呢。虽然 FE 35mm F1.8 有 F1.8 大光圈,但是手机摄影的夜拍实在是厉害,计算摄影不容小觑。

DSC00365-dk-compressed.jpg

下面圆拱顶带灯的建筑是岗子村太阳宫,远处的湖是玄武湖,再远处的江是长江。A7C2全画幅 sensor 3300万像素的照片,原图解析力还是很不错的。

DSC00373-dk-compressed.jpg

DSC00377-dk-compressed.jpg

下山后我还去了一趟玄武湖,拍了几张,此时大腿和膝盖已经在疼了 [捂脸]

DSC00385-dk-compressed.jpg

ISO手动指定到了100,画面纯净度没得说,比手机自动模式强。

DSC00389-dk-compressed.jpg

树上的细节清晰可见,不错。

DSC00393-dk-compressed.jpg

就拍了这么多,天气实在是太热了,后面天气合适时再战。

Windows 11 Docker Desktop 更换默认C盘存储路径,释放C盘空间

作者 Allen Hua
2024年7月1日 17:54

我们知道,Docker Desktop 在win上默认存储的路径是 %LOCALAPPDATA%\Docker,实际存储路径:C:\Users\dk\AppData\Local\Dockerdk 是你的用户名。

我的C盘还是出厂自带的512G固态,虽然我没有分区,将所有空间都给了C盘,但随着 docker 的使用,Windows创建vhdx后缀的磁盘镜像文件不断扩容,这个文件越来越大,当然还有其他大文件。

使用 WinDirStat 软件分析,我的 Docker 目录占用了 107.4GB,这对 512GB 固态来说有点吃力。很遗憾忘了截图,当时的C盘只剩34GB空闲空间,已经爆红了……

win_dir_stat分析结果.jpg

所以我打算 migrate Docker Desktop root storage path for windows...

使用 docker image prune -af 或者 docker system prune 这些方法只能释放一部分空间。

还看到使用压缩镜像的方式减小镜像文件体积的方法。

但使用符号软链接的方式是最优雅的,改动最小,实现起来也最简单,还最能释放空间。

docker root路径迁移 cmd 命令列表.jpg

看上图,整体思路

  1. 退出 Docker Desktop
  2. 创建文件夹 E:\docker_desktop_files
  3. 复制 C:\Users\dk\AppData\Local\Docker 下面的所有文件到 E:\docker_desktop_files
  4. 使用管理员权限打开一个 cmd 窗口,进入路径 C:\Users\dk\AppData\Local
  5. 重命名 Docker 文件夹为 Docker_bak,这一举作用有二:让Docker客户端知道 C:\Users\dk\AppData\Local\Docker 路径已不存在;暂时只是重命名文件夹,相当于一个备份,如果后续迁移出现问题,比如无法打开 Docker Desktop,还能改回来
  6. 创建符号链接mklink /j "C:\Users\dk\AppData\Local\Docker" "E:\docker_desktop_files"
  7. 再次打开 Docker Desktop,正常运行
  8. 删除 Docker_bak 文件夹,释放了 C 盘很多空间。再次检查 C:\Users\dk\AppData\Local\ ,发现生成了一个带有符号链接标志的 Docker 文件夹

带链接符号的 Docker 目录.jpg

下面给出上面部分命令的解释

# 使用管理员权限打开一个 cmd 窗口,进入路径 `C:\Users\dk\AppData\Local`
cd C:\Users\dk\AppData\Local\

# 重命名 `Docker` 文件夹为 `Docker_bak`,使用 ren 命令重命名
ren Docker Docker_bak

# 创建符号链接,左边路径是 Docker Desktop 程序默认读取的路径,E:\docker_desktop_files 是软链接过去的路径
mklink /j "C:\Users\dk\AppData\Local\Docker" "E:\docker_desktop_files"

再次打开 Docker Desktop,发现程序和里面的镜像、容器等都正常。通过 rmdir /s /q Docker_bak 强制递归删除原本的 Docker 目录,释放了C盘空间。

释放后的C盘空间.jpg

参考: https://stackoverflow.com/questions/62441307/how-can-i-change-the-location-of-docker-images-when-using-docker-desktop-on-wsl2

雨游钟山——雨天带着索尼A7C2去钟山拍照

作者 Allen Hua
2024年6月29日 21:17

给今天的文章增加一首BGM,欢迎收听 Aimer - Ref:rain, 恋如雨止

下午的雨还在下,但坐不住了,决定去走走雨中的钟山,拍拍雨中的钟山。由于时间的问题,今天只去了范鸿仙墓和灵谷寺,其他很多地方没有逛到,以后再去拍。

DSC00189-dk-compressed.jpg

DSC00196-dk-compressed.jpg

DSC00198-dk-compressed.jpg

去范鸿仙墓停车场的路,很喜欢大树遮荫后的道路。

DSC00225-dk-compressed.jpg

会玩,不过他们停在弯道+下坡处,有点不太好属于是……

DSC00228-dk-compressed.jpg

陵园路的梧桐大道都知道,但是这里看起来也像梧桐大道,你知道是哪里吗?

DSC00237-dk-compressed.jpg

DSC00239-dk-compressed.jpg

云雾缭绕在半山腰,山顶已看不清。

DSC00241-dk-compressed.jpg

左边是南京体育学院和灵谷寺之间的巨大草坪。

DSC00246-dk-compressed.jpg

DSC00252-dk-compressed.jpg

湖里都浑浊了。雨中垂钓的大哥,意境拉满。

DSC00253-dk-compressed.jpg

灵谷寺。

DSC00256-dk-compressed.jpg

DSC00262-dk-compressed.jpg

这张快门时间 0.5s,稍微能把流水拍出纱布绵延细长的感觉。

DSC00266-dk-compressed.jpg

吼吼,身上都湿了,收拾收拾咱们下回见。

带上A7C2第一次扫街,分享今天拍的一些片子

作者 Allen Hua
2024年6月22日 22:36

我问了GPT-4 这个问题:“全画幅35mm焦段适合拍摄什么样的场景?”,他的回答是

35mm焦段的镜头,在全画幅相机上使用时,提供了一种接近于人眼视角的视野,因此它是非常多才多艺的,可以用于多种不同的拍摄场景。以下是几种场景,其中35mm焦距表现尤为出色:

  1. 街头摄影:由于35mm焦段提供了宽广的视野,非常适合街头摄影。它允许摄影师快速抓拍人物和环境,同时保持足够的距离,不会打扰到拍摄对象。

  2. 人像摄影:虽然通常人像摄影更倾向使用85mm或更长的焦距来压缩背景,但35mm焦距允许摄影师拍摄更多环境背景,创造环境人像摄影。这对于想要在人像中展示更多背景故事的情况特别有用。

  3. 风景摄影:35mm焦距虽不如超广角镜头那样能够捕捉广阔的景象,但它提供了一种自然的视角,非常适合拍摄风景。通过35mm镜头,可以获得很好的前景和背景平衡,创造出引人入胜的风景照片。

  4. 纪实摄影:纪实摄影强调故事的真实性和自然性,35mm焦距凭借其接近人类自然视角的特点,成为纪实摄影师的首选。它既可以捕获广阔的场景,又不至于扭曲,非常适合记录人物和事件。

  5. 旅行摄影:旅行时携带设备的轻便性很重要,35mm镜头因其适用于多种场合,成为了旅行摄影师的理想选择。它能够应对街拍、人像、风光等多种摄影需求,是旅行中的多面手。

  6. 日常摄影:35mm镜头同样适合记录日常生活,无论是拍摄家人、宠物还是街角的小确幸,35mm的视角都能很好地捕捉这些瞬间,让照片充满生活感。

总之,35mm焦距的镜头非常灵活,适合广泛的摄影场景。它可以是摄影师包包里的"瑞士军刀"——无论是专业摄影人士还是摄影爱好者都能从中受益。


他回答的很好且全面。我今天带着 FE 35mm F1.8 出门街拍了,扫街试试看。但是今天体验有所不好的就是天气太闷热了,30多度的天,空气湿度还80%以上,一路上都汗流浃背。来看看我今天拍摄的照片。

仔细想了想还是开车出门,第一站玄武湖。把车停在一个好地方,不用停车费,嘿嘿。

DSC00024-dk-compressed.jpg

DSC00042-dk-compressed.jpg

玄武湖游船码头,5年了,还没有坐过。🤣

DSC00046-dk-compressed.jpg

码头上靠着水上房屋休息的环卫工人。

DSC00048-dk-compressed.jpg

这35mm拍拍一般的广角风景还是够用的,但是拍大山大河就不够用了。

DSC00052-dk-compressed.jpg

DSC00059-dk-compressed.jpg

南京玄武湖最佳摄影点(现在有个指示牌子

DSC00063-dk-compressed.jpg

熟悉的南京站。

DSC00071-dk-compressed.jpg

有一点过曝。斑马线和直方图还没有熟练掌握。

DSC00079-dk-compressed.jpg

一只小猫咪。

DSC00100-dk-compressed.jpg

DSC00102-dk-compressed.jpg

小朋友太可爱了!一直盯着我,我马上开机拍了下来,分别时我向她招了招手,她面部依然没有明显的表情,哈哈哈,她爸爸也没有发现后面我在拍。看她爸爸后背上的汗水也能知道今天走在大街上有多热了。

DSC00105-dk-compressed.jpg

中华门绿道。

DSC00108-dk-compressed.jpg

这颗镜头最近对焦距离 22cm,蛮实用。

DSC00122-dk-compressed.jpg

DSC00133-dk-compressed.jpg

DSC00142-dk-compressed.jpg

一间很小的书店网红小猫猫,我忘了叫什么名字。我也在他们那个微信群里!嘿嘿
今天拍这只小猫的时候,旁边一个小姐姐也拿着相机拍,先看我怎么拍的,问我我的参数是啥样的,然后还问ISO要怎么调,我还和她说用绿叶当前景,…… hhhh

DSC00152-dk-compressed.jpg

他们家的另一只猫。

DSC00154-dk-compressed.jpg

喵喵,有点帅的呀。

DSC00157-dk-compressed.jpg

DSC00161-dk-compressed.jpg

DSC00170-dk-compressed.jpg

偷拍的汉服小姐姐(捂脸

DSC00171-dk-compressed.jpg

今天扫街热得一批,但收获满满。

❌
❌