This topic created in 46 days ago, the information mentioned may be changed or developed.
这样的,我想用 tkinter 写一个无外部依赖的 GUI 程序
但发现 python 不原生支持 jpg
再三考虑,想到一个办法
网上找一段纯 python 代码(无依赖),插入到项目中
注意有个前提,可以接受牺牲图片的部分质量
网上确实有这样的代码,大概几百行
问题是网上的代码,只能成功解码部分 jpg 图片,很多图片的处理过程都报错了
也试过让大语言模型去生成,但是受限于长度限制,都生成失败了
Supplement 1 · Jul 3
暂时放弃这个念头了
原因一:jpg 太复杂,网上能找到的可用的 pure python 解码器只支持部分特征
原因二:pure python 解码 jpg 真的很慢
29 replies • 2026-08-07 03:00:36 +08:00
 |
|
1
hertzry Jul 2 via Android
那你把依赖的库源码全粘贴到本地呗。
|
 |
|
2
ycl10875222 Jul 2
换个思路不就好了 用 python 的内置库把 jpg 转成 png 然后用 tk 解析 png,你都接受牺牲图片质量了 那丢点信息也无所谓了
|
 |
|
3
TrackBack Jul 2
让 AI 帮你重写一遍 stb_image 到纯 python ,原来的 C 代码也就 8000 行 不过最好说清楚你这里的“无外部依赖”具体指什么、需求是为什么,这样可行方案会更多
|
 |
|
5
jko123 Jul 2
为什么要那么费劲,不用依赖,PIL 也算是标准库了吧
|
 |
|
6
paopjian Jul 2
咱也不懂你为什么有第三方库洁癖, python 只是框架, 第三方才完善了各种功能, jpg 看着简单内部有大量算法优化存储的, 不然你让 AI 去读 PIL 库从 C 反写成 python 得了
|
 |
|
7
hackfly Jul 2
jpg 自己搞,开玩笑,bmp/tga 自己搞还差不多
|
 |
|
8
hefish Jul 2
我也想用 python 实现一个 c++编译器, 我准备让豆包大模型来做。
|
 |
|
9
Chemist Jul 3 2
你为什么想用 tkinter 写一个无外部依赖的 GUI 程序? 感觉又是一个 XY problem
|
 |
|
10
jim9606 Jul 3 via Android
不知道你为啥要图这个无依赖洁癖
一种思路是别有这种洁癖,找一个 libjpeg 的绑定库来做,例如 pylibjpeg-libjpeg 。libjpeg 是事实标准,不用担心移植不了的问题,而且也不是大包大揽的库,不会引入复杂依赖
第二种思路是用系统的媒体 api,例如 windows 的 wic 。不过这并不跨平台,得自己写 interprop,不如第一种省事简单
|
 |
|
13
XIVN1987 Jul 3
找个单文件的 jpeg 解码库,,把它直接放到自己的工程目录下。。
我用 bottle 就是直接把它放到自己工程目录下,,这样就相当于没有外部依赖了。。
|
 |
|
14
tf2 Jul 3
你是想在 tkinter 展示 jpg ,还是想自己读取 jpg 的 RGB 像素处理然后在 tkinter 展示??
|
 |
|
17
clemente Jul 3
1.编写 Go 动态链接库代码 2.Python 使用内置 ctypes 进行 FFI 调用
|
 |
|
19
noahliaszn Jul 3
很抽象, 用 python 写一个 gui,然后又要无依赖, 那为什么不用纯 c 写, 既要又要的感觉
|
 |
|
20
woshishui2022 Jul 3
闲的蛋疼,python 不装第三方库能干嘛啊,估计你这 GUI 程序也就是自己玩玩的
|
 |
|
21
yougg Jul 3
你让计算机编程届最标志性的胶水编程语言不要外部依赖, 那不如直接换个语言来写了.
|
 |
|
23
UnluckyNinja Jul 3
python 搞 GUI 是次选中的次选吧,嫌 electron 大就算了,那为什么不走 python 社区一惯做法:跑一个本地的 HTTP 服务,让用户去浏览器用前端。你听说过 gradio 吗?
|
 |
|
25
sir283 Jul 4
你都用 python 了,还要无外部依赖?你还活在二十年前吗?那你为什么不直接用 Java 或者 C 语言写呢?为什么不直接用汇编手搓算法呢?哦,对了,python 是可以打包成 exe 的,用 pyinstaller ,如果你是在乎这个的话。
|
 |
|
26
yuruizhe Jul 4
你都找到了网上的开源实现了,再深入调试一下呗 不过估计大部分 bug 都是数学公式没实现好 看了下 jpeg 的解码介绍,什么霍夫曼解码,差分脉冲编码调制,zigzag 扫描,离散余弦变换与逆变换,双线性差值上采样,头都大了 手搓这种轮子,我想都不敢想
|
 |
|
27
awesome123 16 days ago
我可以做一个,前提是你程序是做着玩的,还是真有用?
|