如何从Wikimedia获取自定义或更低分辨率版本的图片
问题原因与正确实现方式
你拼接URL的规则错了,所以所有测试链接都无法访问。Wikimedia支持直接通过URL拼接获取自定义分辨率缩略图,不需要调用接口、不需要鉴权,公开可访问,规则如下:
- 原图路径结构:
https://upload.wikimedia.org/wikipedia/commons/[哈希1级目录]/[哈希2级目录]/[原文件名] - 指定宽度缩略图路径结构:
https://upload.wikimedia.org/wikipedia/commons/thumb/[哈希1级目录]/[哈希2级目录]/[原文件名]/[目标宽度]px-[输出文件名]
你之前的写法漏了路径里的thumb层级,才会返回404。
对应你测试案例的正确链接示例
- DNA_Overview2_crop.png 200px宽版本:
https://upload.wikimedia.org/wikipedia/commons/thumb/4/4c/DNA_Overview2_crop.png/200px-DNA_Overview2_crop.png - Fotothek_df_n-06_0000001.jpg 200px宽版本:
https://upload.wikimedia.org/wikipedia/commons/thumb/1/17/Fotothek_df_n-06_0000001.jpg/200px-Fotothek_df_n-06_0000001.jpg - Mount_St._Helens_erupting_blue.jpg 200px宽版本:
https://upload.wikimedia.org/wikipedia/commons/thumb/f/f2/Mount_St._Helens_erupting_blue.jpg/200px-Mount_St._Helens_erupting_blue.jpg
使用注意事项
- 目标宽度不能超过原图实际宽度,超过后会直接返回原图,不会做放大处理
- 普通位图(jpg/png/gif等)的输出文件名保持和原文件名完全一致,不要随意修改后缀;仅SVG矢量图需要在后缀后追加你需要的栅格格式后缀,比如需要png格式的SVG缩略图就写
200px-xxx.svg.png - 缩略图是Wikimedia服务器自动生成缓存的,首次访问可能稍慢,后续访问会直接命中缓存加载
你之前看到的“修改URL获取不同尺寸图片”的说明本身是正确的,只是你遗漏了必须添加
thumb目录层级的关键规则,才会拼接出无效地址。
内容的提问来源于stack exchange,提问作者Guillem Poy
相关产品推荐
相关产品推荐

