欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 时评 > CSDN图片加载不出来问题解决

CSDN图片加载不出来问题解决

2025/2/5 16:49:27 来源:https://blog.csdn.net/v13111329954/article/details/145404879  浏览:    关键词:CSDN图片加载不出来问题解决

CSDN图片加载不出来问题解决

这个情况一般是由于在Typora中调整了图片缩放导致的

像这两张图我都在Typora中调整为了50%大小

Typora自动将它转换为使用HTML标签,而其中的style中的zoom属性无法被CSDN识别,因此图片无法加载

image-20250131123641181

解决方法有两种(前提:已经配置好图床)

1.最简单的方法 ->不缩放图片

这种方法固然有效,但是在CSDN中图片默认不会居中,而且全部都很大,不够美观

2.比较好的解决方法->使用python脚本转换

脚本代码往下翻

先说说这个脚本能够做什么

将图片缩放标签改为CSDN能够识别的形式
居中图片

用法也很简单:使用前需要配置Python环境,并且安装Python的PIL库

这些大家自行搜索教程,这里不再赘述

首先将我给的python文件放到 要转换的md文件 的同一目录下

image-20250131123858417

点击文件管理器左上角的框框,输入cmd后回车,打开命令行

image-20250131123925966

在cmd中输入一下内容并回车

python3 transform.py 你的md文件名.md

当看到以下内容时代表已经转换完成(图片比较多的话就耐心等待一下)

注意不要带有中文文件名

image-20250131123956111

此时目录中会出现一个带有CSDN前缀的md文件,使用此文件上传csdn即可

image-20250131124028920

Python脚本代码

这篇文章中的图片都是经过了这个脚本转换的

脚本采用了正则匹配来获取图片信息,学过python的同学应该比较熟悉了

import io
import re
import sys
import urllib.request
from PIL import Imagedef get_size(img_path):  # 根据图片链接获取图片的大小response = urllib.request.urlopen(img_path)temp_img = io.BytesIO(response.read())img = Image.open(temp_img)return img.sizedef alter(s):  # 处理未修改大小的图片return "![](" + s.group(2) + "#pic_center)"def alter_zoom(s):  # 处理 typora 中用 zoom 属性修改过大小的图片zoom_value = int(s.group(4)) / 100w, h = get_size(s.group(2))new_w, new_h = int(zoom_value * w), int(zoom_value * h)return "![](" + s.group(2) + "#pic_center" + f' ={new_w}x{new_h})'#return s.group(1) + s.group(2) + "#pic_center" + s.group(3) + f'width="{s.group(4)}%"' + s.group(5) #注释掉的这种方法不保证100%可以def alter_zoom_empty(s):  # 处理 typora 中用 zoom 属性修改过大小的图片return "![](" + s.group(2) + "#pic_center)"file_name = sys.argv[1]
with open("./" + file_name, "r", encoding="utf-8") as fin, open("./" + 'CSDN_' + file_name , "w", encoding="utf-8") as fout:pattern = re.compile(r"(!\[image-\d+]\()(.+)(\))")  # 未修改大小的图片的匹配规则pattern_zoom = re.compile(r'(<img src=")(.*)(" .* )style="zoom:\s?(\d+)%;"(\s?/>)')  # 带有 zoom 属性的图片的匹配规则pattern_zoom_empty = re.compile(r'(<img src=")(.*)(" .* )style="zoom:();"(\s?/>)')  # 带有 zoom 属性的图片的匹配规则content = fin.read()  # 读取文件内容content1 = pattern.subn(alter, content)  # 第一次处理content2 = pattern_zoom.subn(alter_zoom, content1[0])  # 第二次处理content3 = pattern_zoom_empty.subn(alter_zoom_empty, content2[0])  # 第三次处理fout.write(content3[0])  # 写入新文件print("原始图片替换次数:", content1[1])print("zoom 属性图片替换次数:", content2[1] + content3[1])print("总共替换次数:", content1[1] + content2[1] + content3[1])

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com