資源簡介
jbig2二值圖像壓縮算法實現,C++實現,jbig2是二值圖像壓縮效果效率平衡最佳的國際標準

代碼片段和文件信息
#!/usr/bin/python
#?Copyright?2006?Google?Inc.
#?Author:?agl@imperialviolet.org?(Adam?Langley)
#
#?Licensed?under?the?Apache?License?Version?2.0?(the?“License“);
#?you?may?not?use?this?file?except?in?compliance?with?the?License.
#?You?may?obtain?a?copy?of?the?License?at
#
#??????http://www.apache.org/licenses/LICENSE-2.0
#
#?Unless?required?by?applicable?law?or?agreed?to?in?writing?software
#?distributed?under?the?License?is?distributed?on?an?“AS?IS“?BASIS
#?WITHOUT?WARRANTIES?OR?CONDITIONS?OF?ANY?KIND?either?express?or?implied.
#?See?the?License?for?the?specific?language?governing?permissions?and
#?limitations?under?the?License.
#?JBIG2?Encoder
#?https://github.com/agl/jbig2enc
import?sys
import?re
import?struct
import?glob
import?os
#?This?is?a?very?simple?script?to?make?a?PDF?file?out?of?the?output?of?a
#?multipage?symbol?compression.
#?Run?./jbig2?-s?-p??image1.jpeg?image1.jpeg?...
#?python?pdf.py?output?>?out.pdf
dpi?=?72
class?Ref:
??def?__init__(self?x):
????self.x?=?x
??def?__str__(self):
????return?“%d?0?R“?%?self.x
class?Dict:
??def?__init__(self?values?=?{}):
????self.d?=?{}
????self.d.update(values)
??def?__str__(self):
????s?=?[‘<‘]
????for?(x?y)?in?self.d.items():
??????s.append(‘/%s?‘?%?x)
??????s.append(str(y))
??????s.append(“\n“)
????s.append(“>>\n“)
????return?‘‘.join(s)
global_next_id?=?1
class?Obj:
??next_id?=?1
??def?__init__(self?d?=?{}?stream?=?None):
????global?global_next_id
????if?stream?is?not?None:
??????d[‘Length‘]?=?str(len(stream))
????self.d?=?Dict(d)
????self.stream?=?stream
????self.id?=?global_next_id
????global_next_id?+=?1
??def?__str__(self):
????s?=?[]
????s.append(str(self.d))
????if?self.stream?is?not?None:
??????s.append(‘stream\n‘)
??????s.append(self.stream)
??????s.append(‘\nendstream\n‘)
????s.append(‘endobj\n‘)
????return?‘‘.join(s)
class?Doc:
??def?__init__(self):
????self.objs?=?[]
????self.pages?=?[]
??def?add_object(self?o):
????self.objs.append(o)
????return?o
??def?add_page(self?o):
????self.pages.append(o)
????return?self.add_object(o)
??def?__str__(self):
????a?=?[]
????j?=?[0]
????offsets?=?[]
????def?add(x):
??????a.append(x)
??????j[0]?+=?len(x)?+?1
????add(‘%PDF-1.4‘)
????for?o?in?self.objs:
??????offsets.append(j[0])
??????add(‘%d?0?obj‘?%?o.id)
??????add(str(o))
????xrefstart?=?j[0]
????a.append(‘xref‘)
????a.append(‘0?%d‘?%?(len(offsets)?+?1))
????a.append(‘0000000000?65535?f?‘)
????for?o?in?offsets:
??????a.append(‘%010d?00000?n?‘?%?o)
????a.append(‘‘)
????a.append(‘trailer‘)
????a.append(‘</Size?%d\n/Root?1?0?R?>>‘?%?(len(offsets)?+?1))
????a.append(‘startxref‘)
????a.append(str(xrefstart))
????a.append(‘%%EOF‘)
????#?sys.stderr.write(str(offsets)?+?“\n“)
????return?‘\n‘.join(a)
def?ref(x):
??return?‘%d?0?R‘?%?x
def?main(symboltable=‘symboltable‘?pagefiles=glob.glob(‘page-*‘)):
??doc?=?Doc()
??doc.add_object(Obj({‘Type‘?:?‘/Catalog‘?‘Outlines‘?:?ref(2)?‘Pages‘?:?ref(3)}))
??doc.add_object(Obj({‘Type‘?:?‘/Outlines‘?‘Count‘:?‘0‘}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
????.......???????217??2017-01-30?09:27??jbig2enc\.gitignore
????.......???????219??2017-01-30?09:27??jbig2enc\AUTHORS
?????文件???????1859??2017-01-30?09:27??jbig2enc\autogen.sh
????.......??????1512??2017-01-30?09:27??jbig2enc\ChangeLog
????.......??????2936??2017-01-30?09:27??jbig2enc\configure.ac
????.......???????674??2017-01-30?09:27??jbig2enc\COPYING
????.......??????8533??2017-01-30?09:27??jbig2enc\doc\jbig2enc.html
????.......????????38??2017-01-30?09:27??jbig2enc\doc\Makefile.am
????.......???????439??2017-01-30?09:27??jbig2enc\doc\PATENTS
????.......???1178352??2017-01-30?09:27??jbig2enc\fcd14492.pdf
????.......???????858??2017-01-30?09:27??jbig2enc\INSTALL
????.......???????157??2017-01-30?09:27??jbig2enc\Makefile.am
????.......????????13??2017-01-30?09:27??jbig2enc\NEWS
?????文件???????5138??2017-01-30?09:27??jbig2enc\pdf.py
????.......??????1086??2017-01-30?09:27??jbig2enc\README.md
????.......?????14819??2017-01-30?09:27??jbig2enc\src\jbig2.cc
????.......?????21848??2017-01-30?09:27??jbig2enc\src\jbig2arith.cc
????.......??????8005??2017-01-30?09:27??jbig2enc\src\jbig2arith.h
????.......??????7472??2017-01-30?09:27??jbig2enc\src\jbig2comparator.cc
????.......??????1849??2017-01-30?09:27??jbig2enc\src\jbig2comparator.h
????.......?????30697??2017-01-30?09:27??jbig2enc\src\jbig2enc.cc
????.......??????6993??2017-01-30?09:27??jbig2enc\src\jbig2enc.h
????.......??????5336??2017-01-30?09:27??jbig2enc\src\jbig2segments.h
????.......??????3950??2017-01-30?09:27??jbig2enc\src\jbig2structs.h
????.......?????15653??2017-01-30?09:27??jbig2enc\src\jbig2sym.cc
????.......??????3790??2017-01-30?09:27??jbig2enc\src\jbig2sym.h
????.......???????530??2017-01-30?09:27??jbig2enc\src\Makefile.am
????.......??????4761??2017-01-30?09:27??jbig2enc\vs2008\jbig2\jbig2.vcproj
????.......??????1512??2017-01-30?09:27??jbig2enc\vs2008\jbig2enc.sln
????.......??????4352??2017-01-30?09:27??jbig2enc\vs2008\libjbig2enc\libjbig2enc.vcproj
............此處省略9個文件信息
- 上一篇:opencv視覺定位,C++編寫的
- 下一篇:32x32的icon圖標
評論
共有 條評論