发布网友 发布时间:2022-04-20 13:22
共1个回答
热心网友 时间:2022-05-25 15:24
一般是文件损坏造成的,如果文件从来没动过,突然之间就不能查看图片的话,还有一种情况,就是你这这张图片是从别的软件复制粘贴过来的(尤其是PS),但是你本机当时的软件没有安装/安装损坏了,这张图片的预览也就不存在了。
解决方案,从源文件获取到嵌入的文稿,然后反解析出来源文件,重新转成纯图片替换即可。
说的简单,其实很繁琐,下面以PS为例,需要编程相关知识,小白慎入。
1. 我们直接从PS软件中,复制,粘贴到PPT中,保存成PPTX格式,
2. 用压缩软件(推荐7-z)直接打开该PPTX文件(右键 » 7-zip » 打开压缩文件),看到,ppt\embeddings目录下有一个bin文件,这个就是当时PS的源文件的
3. 解压出来bin文件,使用OpenMcdf(ironfede/openmcdf)编程批量导出bin文件中的CONTENTS
var filename = "objObject1.bin";var cf = new CompoundFile(filename);var contentsStream = cf.RootStorage.GetStream("CONTENTS");byte[] result = contentsStream .GetData();File.WriteAllBytes("1.psd", result);cf.Close();
4. 导出出来的psd就能用PS重新打开,重新导出成图片文件,然后替换当时PPT中图片即可。
最后,我写的带UI界面的,OLE Object 导出器