推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
teli
V2EX  ›  Python

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

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

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

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

    也试过让大语言模型去生成,但是受限于长度限制,都生成失败了
    Supplement 1  ·  1h 47m ago
    暂时放弃这个念头了
    原因一:jpg 太复杂,网上能找到的可用的 pure python 解码器只支持部分特征
    原因二:pure python 解码 jpg 真的很慢
    21 replies    2026-07-03 10:35:48 +08:00
    hertzry
        1
    hertzry  
       16h 58m ago via Android
    那你把依赖的库源码全粘贴到本地呗。
    ycl10875222
        2
    ycl10875222  
       16h 48m ago
    换个思路不就好了 用 python 的内置库把 jpg 转成 png 然后用 tk 解析 png,你都接受牺牲图片质量了 那丢点信息也无所谓了
    TrackBack
        3
    TrackBack  
       16h 47m ago
    让 AI 帮你重写一遍 stb_image 到纯 python ,原来的 C 代码也就 8000 行
    不过最好说清楚你这里的“无外部依赖”具体指什么、需求是为什么,这样可行方案会更多
    teli
        4
    teli  
    OP
       16h 38m ago
    @ycl10875222 都说了 python 不支持 jpg
    jko123
        5
    jko123  
       16h 15m ago
    为什么要那么费劲,不用依赖,PIL 也算是标准库了吧
    paopjian
        6
    paopjian  
       16h 4m ago
    咱也不懂你为什么有第三方库洁癖, python 只是框架, 第三方才完善了各种功能, jpg 看着简单内部有大量算法优化存储的, 不然你让 AI 去读 PIL 库从 C 反写成 python 得了
    hackfly
        7
    hackfly  
       13h 41m ago
    jpg 自己搞,开玩笑,bmp/tga 自己搞还差不多
    hefish
        8
    hefish  
       13h 8m ago
    我也想用 python 实现一个 c++编译器, 我准备让豆包大模型来做。
    Chemist
        9
    Chemist  
       11h 51m ago   ❤️ 1
    你为什么想用 tkinter 写一个无外部依赖的 GUI 程序?
    感觉又是一个 XY problem
    jim9606
        10
    jim9606  
       4h 48m ago via Android
    不知道你为啥要图这个无依赖洁癖

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

    第二种思路是用系统的媒体 api,例如 windows 的 wic 。不过这并不跨平台,得自己写 interprop,不如第一种省事简单
    drymonfidelia
        11
    drymonfidelia  
       3h 21m ago
    编译成 onefile 再反编译
    XIVN1987
        13
    XIVN1987  
       3h 7m ago
    找个单文件的 jpeg 解码库,,把它直接放到自己的工程目录下。。

    我用 bottle 就是直接把它放到自己工程目录下,,这样就相当于没有外部依赖了。。
    tf2
        14
    tf2  
       2h 58m ago
    你是想在 tkinter 展示 jpg ,还是想自己读取 jpg 的 RGB 像素处理然后在 tkinter 展示??
    labubu
        15
    labubu  
       2h 50m ago
    系统 api
    clemente
        16
    clemente  
       2h 12m ago
    用 go 写一个 编译好 打包进去
    clemente
        17
    clemente  
       2h 7m ago
    1.编写 Go 动态链接库代码
    2.Python 使用内置 ctypes 进行 FFI 调用
    erquren
        18
    erquren  
       1h 45m ago
    刻板映像 +1
    noahliaszn
        19
    noahliaszn  
       1h 38m ago
    很抽象, 用 python 写一个 gui,然后又要无依赖,
    那为什么不用纯 c 写, 既要又要的感觉
    woshishui2022
        20
    woshishui2022  
       1h 30m ago
    闲的蛋疼,python 不装第三方库能干嘛啊,估计你这 GUI 程序也就是自己玩玩的
    yougg
        21
    yougg  
       1h 20m ago
    你让计算机编程届最标志性的胶水编程语言不要外部依赖, 那不如直接换个语言来写了.
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5063 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 80ms · UTC 03:56 · PVG 11:56 · LAX 20:56 · JFK 23:56
    ♥ Do have faith in what you're doing.