python实现的jpg格式图片修复代码


Posted in Python onApril 21, 2015

最近为客户修复损坏的jpg写的,效果还可以,但不保证适用任何情况。

如果你有损坏照片,不妨试一试,如果可以使用给我留个言哦。

# -*- coding: utf8 -*-

# !/usr/bin/env python
__author__ = 'fengxing'

__date__ = '2012-1-18 20:13'
import sys


def jpgfix(name):

    sig = '\xFF\xD8\xFF\xDB'

    with open(name, "r") as fd:

        fd.seek(len(sig), 0)

        jpg = fd.read()

        pos = jpg.find(sig)

        if pos < 0:

            raise Exception('Not find signature')

        jpg = jpg[pos:]
    with open(name, "w") as fd:

        fd.seek(0, 0)

        print 'size is:', len(jpg)

        fd.write(jpg)
if __name__ == '__main__':

    try:

        while True:

            jpgfix(sys.argv[1])

    except:

        print 'Done'

使用方法很简单,上面代码另存为jpg_fix.py,再从命令行里输入

python jpg_fix.py ABC.jpg

ABC.jpg就是你要修复的图片(注意:修复前请自行备份)
Python 相关文章推荐
python调用cmd命令行制作刷博器
Jan 13 Python
windows下python模拟鼠标点击和键盘输示例
Feb 28 Python
用Python给文本创立向量空间模型的教程
Apr 23 Python
python实现mysql的单引号字符串过滤方法
Nov 14 Python
Python实现PS图像抽象画风效果的方法
Jan 23 Python
python ipset管理 增删白名单的方法
Jan 14 Python
PyTorch中常用的激活函数的方法示例
Aug 20 Python
Python散点图与折线图绘制过程解析
Nov 30 Python
win10安装tensorflow-gpu1.8.0详细完整步骤
Jan 20 Python
基于Python实现下载网易音乐代码实例
Aug 10 Python
Django配置跨域并开发测试接口
Nov 04 Python
Python通过Schema实现数据验证方式
Nov 12 Python
在Python的Flask框架中使用日期和时间的教程
Apr 21 #Python
在Python的Flask框架下收发电子邮件的教程
Apr 21 #Python
在Python的Flask框架中实现全文搜索功能
Apr 20 #Python
Python的Flask框架中实现分页功能的教程
Apr 20 #Python
在Python的Flask框架中实现单元测试的教程
Apr 20 #Python
Python的Flask框架中实现登录用户的个人资料和头像的教程
Apr 20 #Python
Python的Flask框架中实现简单的登录功能的教程
Apr 20 #Python
You might like
php 调用远程url的六种方法小结
2009/11/02 PHP
PHP连接Access数据库的方法小结
2013/06/20 PHP
zf框架的session会话周期及次数限制使用示例
2014/03/13 PHP
php+mysql查询优化简单实例
2015/01/13 PHP
PHP文件缓存类示例分享
2015/01/30 PHP
PHP构造函数与析构函数用法示例
2016/09/28 PHP
php一个文件搞定微信jssdk配置
2016/12/12 PHP
PHP封装cURL工具类与应用示例
2019/07/01 PHP
PHP call_user_func和call_user_func_array函数的简单理解与应用分析
2019/11/25 PHP
javascript 清除输入框中的数据
2009/04/13 Javascript
5款Javascript颜色选择器
2009/10/25 Javascript
jQuery中attr()和prop()在修改checked属性时的区别
2014/07/18 Javascript
jQuery on方法传递参数示例
2014/12/09 Javascript
JS+CSS实现DIV层的展开、收缩效果
2016/01/28 Javascript
jquery单击事件和双击事件冲突解决方案
2016/03/02 Javascript
JavaScript判断用户名和密码不能为空的实现代码
2016/05/16 Javascript
Vue中 v-if 和v-else-if页面加载出现闪现的问题及解决方法
2018/10/12 Javascript
JS学习笔记之数组去重实现方法小结
2019/05/29 Javascript
vue draggable resizable gorkys与v-chart使用与总结
2019/09/05 Javascript
[37:22]DOTA2上海特级锦标赛D组资格赛#2 Liquid VS VP第一局
2016/02/28 DOTA
[05:46]2018完美盛典-《同梦共竞》
2018/12/17 DOTA
python读写文件操作示例程序
2013/12/02 Python
python设置检查点简单实现代码
2014/07/01 Python
python实现的MySQL增删改查操作实例小结
2018/12/19 Python
Python生成MD5值的两种方法实例分析
2019/04/26 Python
Python搭建Spark分布式集群环境
2019/07/05 Python
Python通过socketserver处理多个链接
2020/03/18 Python
python根据用户需求输入想爬取的内容及页数爬取图片方法详解
2020/08/03 Python
Pycharm同步远程服务器调试的方法步骤
2020/11/04 Python
Python3中小括号()、中括号[]、花括号{}的区别详解
2020/11/15 Python
港湾网络笔试题
2014/04/19 面试题
与C++相比,Java中的数组有什么不同
2014/03/25 面试题
ruby如何进行集成操作?Ruby能进行多重继承吗?
2013/10/16 面试题
幼儿园教师暑期培训心得体会
2016/01/09 职场文书
2019年XX公司的晨会制度及流程!
2019/07/23 职场文书
小学四年级作文之最感动的一件事
2019/11/01 职场文书