创建时间: 2024年11月18日 13:20
作者: 蜡笔大新
笔记类别: 杂项
标签: Data Preprocessing, Machine Learning Techniques
状态: 完成
问题复现
目前的写作方式还是主要集中在notion中,即在notion中写完全稿再导出到自己的博客网站,同时将图片等上传到云服务器图床。然而在编辑时却偶然发现有几张png图片上传到图床后,仍然无法打开。开始以为是Picgo出bug了,于是直接登陆云服务器后台,上传png图像,发现仍然无法打开。
问题分析
于是认为是文件格式出了问题,可能是不兼容,在本地查看了详细信息,基本确定了应该是此处“文稿类型:TIFF图像”导致的错误,即图床无法兼容这种格式。此时非常疑惑,图像明明是png格式,为什么打开却显示是tiff。经过资料查阅:一些常见的图像格式(如JPEG、PNG、TIFF)之间可能会有较好的兼容性,现代的图像查看器和操作系统确实能够识别文件的实际格式,而不仅仅依赖于文件扩展名。
也就是说,其实这张图片是一张tiff图像,但是因为某些错误原因,被转换成png后缀了,因此无法被图床识别展示,但是由于现代操作系统通常能识别实际格式并展示,所以在本地可以正常预览。
继续深究背后的原因,即为什么会出现tiff,以及为什么tiff错误转换成png。
图片来源
这张图片是通过plt库生成的奖励图,在图片上直接右键复制并且粘贴到notion中。然后导出的时候所有的图片都保存为png放在了一个文件夹。在notion中直接查看原始图片后,浏览器中无法预览,说明这张图片在notion中已经是tiff格式了。
为了验证这个pycharm中copy的图片属性,做了几个实验:
- 将图片copy后,通过picgo上传,发现可以正常上传并显示,说明图片是正常png。
- 将图片save as image,本地检查后发现是正常png。
- 将图片copy后,粘贴到微信并发送出去,发现通过微信发的图片都会自动转化成jpg。
综上,不难发现,pycharm中的图片是正常的png,但是由于未知理由,粘贴到notion中,就会被转成tiff,但是最终导出规则是统一的png,因此造成了现在的现象。而平时电脑的截图,粘贴到notion中,却是正常的。
解决方案
针对后缀是png的tiff图像,解决方案是将后缀直接改为.tiff,然后通过python代码或者在线网站转换成正常png。以下是一个使用Python将TIFF图像转换为PNG的示例代码:
from PIL import Image
def tiff2png(tiff_path, png_path):
# 打开TIFF图像
with Image.open(tiff_path) as img:
# 保存为PNG
img.save(png_path, 'PNG')
# 使用示例
input_file = './data/image.tiff'
output_file = './data/image.png'
tiff2png(input_file, output_file)
print(f"已将 {input_file} 转换为 {output_file}")
另一种更直接的方法就是不要将plt生成的图像直接复制粘贴到notion,而是可以截图/下载/使用微信等第三方工具转一下,这样从根本上避免了tiff图像的产生。
拓展:常见图片格式
以下是几种常见图片格式的简介:
JPG/JPEG (Joint Photographic Experts Group)
广泛应用于数码摄影和网络图像。采用有损压缩技术,在文件大小和图像质量之间取得平衡。主要优势包括:
- 高兼容性
- 快速传输
- 小内存占用
特别适合照片和复杂图像的存储。作为有损压缩方案,能在保持较高图片质量的同时,将文件大小压缩至原图的约5%。
PNG (Portable Network Graphics)
支持无损压缩和透明背景,适用于需要保持高质量或包含文本、线条艺术的图像。特点包括:
- 无损压缩算法(源自LZ77)
- 支持透明背景
- 适合渐变图像制作
在网页设计中广泛使用,也是Photoshop、InDesign等主流图像处理软件的首选输出和编辑格式。PNG格式对图片本身质量的损失极小,同时具有高压缩比,能生成体积较小的文件。
GIF (Graphics Interchange Format)
支持动画和有限的256色调色板。适合简单的动画和图标,但不适合照片等复杂图像。GIF格式分为静态和动态两种:
- 静态GIF:类似于JPG格式的图片
- 动态GIF:由多幅图片组成,形成动画效果
由于色彩限制,GIF格式很少适用于静态图像处理工作。在PS或Keynote中导入GIF格式图片时,图片质量通常不尽如人意。
TIFF (Tagged Image File Format)
高质量图像格式,支持有损和无损压缩。常用于印刷行业和专业摄影,文件通常较大。
BMP (Bitmap Image File)
无压缩的图像格式,保留所有图像数据。文件较大,但图像质量高,常用于Windows系统。
WebP
由Google开发的现代图像格式,提供优秀的压缩率和图像质量。支持有损和无损压缩,以及动画和透明度。
SVG (Scalable Vector Graphics)
基于XML的矢量图形格式。可以无损缩放,适合图标、徽标等需要在不同尺寸下保持清晰的图像。
选择合适的图像格式取决于具体用途,如网页展示、打印、存档等,以及对文件大小、图像质量和兼容性的要求。