将超长emmx格式的图片(脑图)转为png/jpg格式方便在手机上查看(失败过程+三种解决方案)

您所在的位置:网站首页 Pdf怎么转化成jpg 将超长emmx格式的图片(脑图)转为png/jpg格式方便在手机上查看(失败过程+三种解决方案)

将超长emmx格式的图片(脑图)转为png/jpg格式方便在手机上查看(失败过程+三种解决方案)

2024-06-30 20:19| 来源: 网络整理| 查看: 265

故事背景:由于本人整理Python3爬虫的知识体系,足足写了三米多长(通过将手机放大图像字体到刚好看着舒服,然后往下滑动图片测出此长度) 在这里插入图片描述

失败第一次:我将图片用MindMaster(我画此脑图的软件)导出png格式后,一旦放大,图片不堪入目,因此,此种png格式的导出,对于此长图来说,图片质量太差,于是这种方法行不通。 失败第二次:于是我便想到了svg矢量图,这种图像并不会随着图片的放大而失去图片质量,而当我直接导出svg格式,在手机上无法直接查看,于是这种方法也行不通。 失败第三次:而导出pdf格式,又无法像保存到手机相册一样不易丢失。于是我开始查找将pdf格式转为png格式的方法,突然发现IE9浏览器竟然可以直接右键pdf页面将其保存为png格式,IE浏览器果然是一个奇特的工具,但当我兴高采烈地点下保存后,提示:意外地调用了方法或属性访问。我初步怀疑是IE的健壮性不够强,部分不兼容的地方出错后导致报错,于是,再次失败了。 失败第四次:我突然灵机一动,先将图片导出为不会损失图片质量的svg矢量图的格式,然后用格式工厂工具将其转为png格式不就可以了吗,然而,当我用此方法操作后,发现,svg格式的原图片是正常的,但将其转为png格式后,所有文字内容发生了位置偏移,而我原本插入其中的部分示例图片也没被转到png,取而代之的是一块空白区域的填补,我的猜测是其中一部分原因可能是由于svg对于矢量图的部分内部算法与格式工厂不兼容导致的,因此,这种方式也行不通,再次失败。 失败第五次:在经过前几次失败后,我突然发现我可是学计算机的呀,为什么不是是Python呢,果然Python有一个名叫cairosvg的第三方库,当我运行测试这个库后,发现报错:OSError: no library called “cairo” was found。(解决方案在下方) 最终问题随之产生:如何将emmx格式的脑图转为同样清晰度的png格式图片呢?

在经过我一番思考后,决定跳出之前的思维模式,重写想一想解决方法,于是第一个想法便是借助第三方网站的技术,第二个想法便是滚动截屏后进行图片边缘裁剪,于是便有了以下两种解决方法的诞生。

解决方法一(最简单): 利用第三方网站Speedpdf,那里提供了pdf的各种格式转换,我在其中找到了jpg格式的转化,由于它和png的差别也不是特别大,于是便在此网站内进行了格式转换,最终导出图片后,其清晰度可以接收,所以,这算是一种最快速的方法了。 解决方法二(组合多种软件而巧妙解决):这算是一种比较清奇的解决思路,将emmx格式的脑图用MindMaster打开,借助FSCapture软件的滚动截屏功能(将界面自动滚动,间断性截取整个视口的图片,最终自动拼凑),得到完整的png图片,清晰度几乎没有损失,之后用PS将图片上下右三个方向的边缘进行裁剪,将图片保存为tiff格式(因为此图片特殊无法直接保存为png格式),接着用格式工厂工具将图片转为png格式,而得到最终png格式的图片。 解决方法三(针对第五次失败的解决方案):安装gtk2-runtime-2.24.32-2020-07-15-ts-win64 (1).exe后,运行cairosvg库则不再报错,于是便可以写代码了:

import cairosvg svg_img = 'Python爬虫知识体系.svg' png_img = 'result.png' cairosvg.svg2png(url=svg_path, write_to=png_path)

运行后,便得到了png格式的图片,未像第四次失败时那样发生位置偏移,二清晰度也与解决方法二平分秋色。

解决方法一、二、三分析: 方法一优点在于更快,更便捷,不需额外装软件、配置环境; 方法二优点在于清晰度高; 方法三优点在于清晰度高,仅需额外装gtk2和cairosvg库,相对简便。

总结:这虽然并不是一个代码报错问题,也不是一道高难度的数学题,但在解决实际问题的过程中,对于独立思考、如何面对失败、解决问题的锻炼都是一致的。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3