我让ChatGPT为我免费构建了一个PDF编辑器,因为我不信任它直接修改文件——结果它成功了!

作者妻子需要将印在黄色纸张上的乐谱扫描为PDF并去除背景色,以便重新打印。直接用ChatGPT处理文件存在非确定性风险,可能改变原始内容。为此,作者转换思路,让ChatGPT编写一个确定性的Python脚本,专门将PDF或JPEG中的非灰/黑色像素替换为白色。脚本一次生成基本可用,最终完美解决问题,相关代码已上传GitHub供免费下载。

我的妻子Denise最近加入了教堂唱诗班,她有一副动人的嗓音。为了练习新歌曲,她需要将印在黄色纸张上的小册子扫描成PDF文件,去除背景颜色后,重新打印在8.5×11英寸的纸张上,这样她就不必戴着老花镜看谱了。

一天下午,她来找我,询问如何在保留乐谱内容的同时去除黄色背景,避免打印时浪费大量彩色墨水。如果直接黑白打印,灰色背景不仅耗墨,还会让乐谱更难辨认。此外,她还打算将乐谱导入PlayScore 2这款应用中跟唱练习,担心黄色背景会影响软件的识别效果。

我最初建议她用Photoshop去除背景,但操作过于繁琐——每张图片都需要单独调整参数,既费时又费力。

于是我建议她使用ChatGPT。她拥有ChatGPT Plus账户,这看起来是个不错的选择。

我做了一些测试,使用了如下提示词:

请返回一个可下载的PDF文件,其中黄色背景已被替换为白色。

你处理得很好,但文字分辨率太低,能否以完整分辨率重新生成?

测试结果基本可行,但ChatGPT对PDF进行了细微的改动。我的妻子担心ChatGPT可能会修改乐谱中的音符、歌词或其他内容,如果练习时出现错误,后果不堪设想。

ChatGPT和其他AI都是"非确定性"的。所谓确定性,是指在给定相同输入的情况下,输出结果始终保持一致。而传统算法编程是高度确定性的——程序即便出错,其行为也可以从代码逻辑和变量状态中推断出来。

AI则不同。即便输入完全相同,每次运行的结果也可能有所差异。这有点像和水管工或电工打交道——AI依赖复杂的概率计算,每次给出的结果都可能不尽相同。

Denise在使用ChatGPT的过程中也深有体会,她绝对不希望把珍贵的乐谱交给一个可能"自由发挥"的工具处理。她需要的是一个严格确定性的背景去色方案。

我曾在哈佛Python编程认证的毕业项目中,编写过一个交互式图像处理工具,能够实现类似Photoshop的图像变换并批量处理。我知道Python完全有能力实现Denise的需求——问题是我实在没有时间亲自动手写这个程序,那周工作堆积如山。

不过,ChatGPT有的是时间。这里有一个绝妙的思路:你完全可以用ChatGPT这种非确定性工具,来生成一个确定性的程序,比如一个Python去色脚本。

于是我给ChatGPT发出了以下提示词,然后去厨房帮妻子准备晚饭:

请编写一个Python脚本,读取一张JPEG图片,将所有非灰色或非黑色的像素替换为白色,并将结果保存为"原文件名-decolor.jpg"格式。允许轻微偏色的灰调,以确保彩色背景上的黑色文字能够正确保留为黑色。如果输入的是PDF文件,也请同样处理,并支持多页PDF。

等晚饭结束,ChatGPT也完成了脚本的生成。最初版本遇到了一个小问题,需要安装一个Python依赖库,解决之后程序运行一切正常。

使用方法非常简单:在命令行中执行decolor_pdf.py脚本,传入一个PDF文件,程序就会输出一个去除背景色的新PDF文件。

这个工具运行效果很好。如果你想自己下载使用,可以在我的GitHub仓库中找到。考虑到版权问题,我没有使用妻子教堂圣歌集中的图片演示,而是从纽约公共图书馆网站找了一首公版歌曲来展示效果。

这首歌出自爵士乐大师法茨·沃勒之手,他还创作过多部音乐剧。这是一首以赛马为隐喻、描写感情变换的趣味之作,由安迪·拉扎夫共同创作,后者以《Ain't Misbehavin'》和《Honeysuckle Rose》等歌曲的歌词而闻名。

从这次经历中,有几点值得分享:

当你不信任AI直接处理文件时,可以让AI帮你生成一个确定性的脚本来代劳。ChatGPT不仅能执行任务,还能编写完成任务的工具。Python拥有丰富的图像处理库,结合AI辅助生成代码,能够快速解决实际问题。

如果你需要快速解决某个问题,不妨试着让ChatGPT帮你写一段代码——它对我很管用,让我在帮妻子解决乐谱问题的同时,还能一边处理烤鸡晚餐。

你是否曾因为担心AI会悄悄修改原始文件而不敢直接使用它?欢迎在评论区分享你的看法。

Q&A

Q1:为什么不直接用ChatGPT处理PDF去色,而要让它写脚本?

A:因为ChatGPT是非确定性的AI,每次处理同一文件可能得到不同结果,存在微调原始内容的风险。Denise担心乐谱中的音符或歌词被改动,影响练习准确性。而用ChatGPT生成一个Python脚本,脚本本身是确定性程序,每次处理结果完全一致,不会对文件内容进行任何主观修改,只执行明确的像素替换操作。

Q2:ChatGPT生成的PDF去色Python脚本是怎么工作的?

A:该脚本通过命令行接收一个PDF文件作为输入,逐页扫描图像中的像素,将所有非黑色、非灰色的像素替换为白色,同时保留轻微偏色的灰调,确保彩色背景上的黑色文字能正确显示。处理完成后,脚本输出一个新的PDF文件,背景色被完全去除,支持多页PDF处理。脚本代码已上传至作者的GitHub仓库,可免费下载使用。

Q3:用ChatGPT生成代码来解决实际问题,有哪些注意事项?

A:首先需要明确描述需求,提示词越清晰,生成的代码质量越高。其次,初次生成的代码可能存在依赖库未安装等小问题,需要根据报错信息进行调整。此外,生成后最好在小范围测试文件上验证效果,再处理重要文件。这种"用AI写工具"的思路,适合那些对编程有一定了解但没有时间从头编写代码的用户。

来源:ZDNET

0赞

好文章,需要你的鼓励

2026

06/08

17:12

分享

点赞

邮件订阅