怎么搞定纯 Python 代码解码 jpg 图片,要求无外部依赖

teli 2026-07-02 18:48 1

这样的,我想用 tkinter 写一个无外部依赖的 GUI 程序
但发现 python 不原生支持 jpg
再三考虑,想到一个办法
网上找一段纯 python 代码(无依赖),插入到项目中

注意有个前提,可以接受牺牲图片的部分质量

网上确实有这样的代码,大概几百行
问题是网上的代码,只能成功解码部分 jpg 图片,很多图片的处理过程都报错了

也试过让大语言模型去生成,但是受限于长度限制,都生成失败了
最新回复 (23)
  • hertzry 07-02 18:58
    1
    那你把依赖的库源码全粘贴到本地呗。
  • ycl10875222 07-02 19:08
    2
    换个思路不就好了 用 python 的内置库把 jpg 转成 png 然后用 tk 解析 png,你都接受牺牲图片质量了 那丢点信息也无所谓了
  • TrackBack 07-02 19:08
    3
    让 AI 帮你重写一遍 stb_image 到纯 python ,原来的 C 代码也就 8000 行
    不过最好说清楚你这里的“无外部依赖”具体指什么、需求是为什么,这样可行方案会更多
  • teli 楼主 07-02 19:18
    4
    @ycl10875222 都说了 python 不支持 jpg
  • jko123 07-02 19:40
    5
    为什么要那么费劲,不用依赖,PIL 也算是标准库了吧
  • paopjian 07-02 19:51
    6
    咱也不懂你为什么有第三方库洁癖, python 只是框架, 第三方才完善了各种功能, jpg 看着简单内部有大量算法优化存储的, 不然你让 AI 去读 PIL 库从 C 反写成 python 得了
  • hackfly 07-02 22:14
    7
    jpg 自己搞,开玩笑,bmp/tga 自己搞还差不多
  • hefish 07-02 22:48
    8
    我也想用 python 实现一个 c++编译器, 我准备让豆包大模型来做。
  • Chemist 07-03 00:05
    9
    你为什么想用 tkinter 写一个无外部依赖的 GUI 程序?
    感觉又是一个 XY problem
  • jim9606 07-03 07:08
    10
    不知道你为啥要图这个无依赖洁癖

    一种思路是别有这种洁癖,找一个 libjpeg 的绑定库来做,例如 pylibjpeg-libjpeg 。libjpeg 是事实标准,不用担心移植不了的问题,而且也不是大包大揽的库,不会引入复杂依赖

    第二种思路是用系统的媒体 api,例如 windows 的 wic 。不过这并不跨平台,得自己写 interprop,不如第一种省事简单
  • drymonfidelia 07-03 08:34
    11
    编译成 onefile 再反编译
  • zhuangzhuang1988 07-03 08:38
    12
    可以直接抄下代码
    https://pyglet.readthedocs.io/en/latest/programming_guide/image.html#supported-image-formats
    https://github.com/pyglet/pyglet/tree/master/pyglet/image/codecs
    调用系统的解码能力
  • XIVN1987 07-03 08:49
    13
    找个单文件的 jpeg 解码库,,把它直接放到自己的工程目录下。。

    我用 bottle 就是直接把它放到自己工程目录下,,这样就相当于没有外部依赖了。。
  • tf2 07-03 08:58
    14
    你是想在 tkinter 展示 jpg ,还是想自己读取 jpg 的 RGB 像素处理然后在 tkinter 展示??
  • labubu 07-03 09:06
    15
    系统 api
  • clemente 07-03 09:44
    16
    用 go 写一个 编译好 打包进去
  • clemente 07-03 09:48
    17
    1.编写 Go 动态链接库代码
    2.Python 使用内置 ctypes 进行 FFI 调用
  • erquren 07-03 10:10
    18
    刻板映像 +1
  • noahliaszn 07-03 10:17
    19
    很抽象, 用 python 写一个 gui,然后又要无依赖,
    那为什么不用纯 c 写, 既要又要的感觉
  • woshishui2022 07-03 10:26
    20
    闲的蛋疼,python 不装第三方库能干嘛啊,估计你这 GUI 程序也就是自己玩玩的
  • yougg 07-03 10:35
    21
    你让计算机编程届最标志性的胶水编程语言不要外部依赖, 那不如直接换个语言来写了.
  • wangtian2020 07-03 14:28
    22
    那就把外部依赖拷进来变成内部依赖
  • UnluckyNinja 07-03 16:56
    23
    python 搞 GUI 是次选中的次选吧,嫌 electron 大就算了,那为什么不走 python 社区一惯做法:跑一个本地的 HTTP 服务,让用户去浏览器用前端。你听说过 gradio 吗?
* 帖子来源V2EX
返回