传真文件的显示(100+400)(100分)

  • 主题发起人 主题发起人 周浩
  • 开始时间 开始时间

周浩

Unregistered / Unconfirmed
GUEST, unregistred user!
做了一个程序,能够接收传真机发来的文件,再发回传真机时,效果清晰连续,

但一显示在屏幕上,就出现了条纹、断线,还出现了挤压变形,扁了许多。我

在绘图的时候处理了“坏线”,重绘上一条线,可效果不佳。

为什么这样一个传真文件,输出到传真机就一点问题也没有呢?

请高人赐教。(先奉上100分,一旦问题解决,你说,想要多少?)
 
能把源码给我看看吗?
 
我用anysno(好像是)控件集做的,没你说的现象,
对了,我的看图也是用它的作的。
可能是,传真的图形格式与咱们平常用的不一样吧。
你的做一个仿传真机格式的看图软件。
 
没人知道如何解决吗?
 
解决1,做个解释传真格式的东西,
解决2,换控件集。





下载


[数据通讯及网络相关]Async pro 3.0 安装版 (2000-9-18 1:07:47)

整理编辑:China ASP


下载栏目:Delphi控件
推荐等级:★★★★★
来  源:delphiuser.com
下载地址:请点这里
文件大小:12400 KB
下载计数:1781
简要说明:
超COOL的串行口通讯控件包!这是3。0安装版,本站以前提供的那个是3。01升级版,必须在安装版的基础上升级才能用。一共有9个压缩包,其他文件名为:setup.w02...setup.w09



http://www.chinaasp.com/download/readItem.asp?id=452
 
里边带有范例,传真效果非常好,我用过
 
传真机huffman压缩编码
关键字:
modified huffman 贴文时间
2001-9-16 15:10:04 文章类型:
原作 给贴子投票
投票
fhaibo 原作 出处:





CCITT Group 3 modified Huffman run length encodeing

这种压缩方法,原来是CCITT这个组织所制定的一种传真机压缩编码方式,也就是Facsimile compatible CCITT Group3。不过,本压缩方法中减少了一些传真机上的特殊码。本压缩方法只能够压缩处理黑白图像数据。这套压缩方法是利用一个Bits数不固定的编码,来代替在黑白图像数据中连续出现的一串白点或黑点。

所有编码的Bits值都是来自于下列三份表格:

Terminating codes

Make-up codes

Additional make-up codes

(1) Terminating codes代表0-63连续白点或黑点的编码。在此范围内,没一点白点或黑点都有一个对应的编码。

(2) Make-up codes代表64-1728连续白点或黑点的编码。在此范围内,每隔64点的白点或黑点就有一个对应的编码。

(3) Additional make-up codes代表1792-2560连续白点或黑点的编码。在此范围内,每隔64点的白点或黑点共用一个对应的编码。

Table 1a. Terminating White Codes

Code Lng Run

---------------------------

00110101 8 0

000111 6 1

0111 4 2

1000 4 3

1011 4 4

1100 4 5

1110 4 6

1111 4 7

10011 5 8

10100 5 9

00111 5 10

01000 5 11

001000 6 12

000011 6 13

110100 6 14

110101 6 15

101010 6 16

101011 6 17

0100111 7 18

0001100 7 19

0001000 7 20

0010111 7 21

0000011 7 22

0000100 7 23

0101000 7 24

0101011 7 25

0010011 7 26

0100100 7 27

0011000 7 28

00000010 8 29

00000011 8 30

00011010 8 31

00011011 8 32

00010010 8 33

00010011 8 34

00010100 8 35

00010101 8 36

00010110 8 37

00010111 8 38

00101000 8 39

00101001 8 40

00101010 8 41

00101011 8 42

00101100 8 43

00101101 8 44

00000100 8 45

00000101 8 46

00001010 8 47

00001011 8 48

01010010 8 49

01010011 8 50

01010100 8 51

01010101 8 52

00100100 8 53

00100101 8 54

01011000 8 55

01011001 8 56

01011010 8 57

01011011 8 58

01001010 8 59

01001011 8 60

00110010 8 61

00110011 8 62

00110100 8 63













Table 1b. Make Up White Codes

Code Lng Run

---------------------------

11011 5 64

10010 5 128

010111 6 192

0110111 7 256

00110110 8 320

00110111 8 384

01100100 8 448

01100101 8 512

01101000 8 576

01100111 8 640

011001100 9 704

011001101 9 768

011010010 9 832

011010011 9 896

011010100 9 960

011010101 9 1024

011010110 9 1088

011010111 9 1152

011011000 9 1216

011011001 9 1280

011011010 9 1344

011011011 9 1408

010011000 9 1472

010011001 9 1536

010011010 9 1600

011000 6 1664

010011011 9 1728





Table 2a. Terminating Black Codes

Code Lng Run

---------------------------

0000110111 10 0

010 3 1

11 2 2

10 2 3

011 3 4

0011 4 5

0010 4 6

00011 5 7

000101 6 8

000100 6 9

0000100 7 10

0000101 7 11

0000111 7 12

00000100 8 13

00000111 8 14

000011000 9 15

0000010111 10 16

0000011000 10 17

0000001000 10 18

00001100111 11 19

00001101000 11 20

00001101100 11 21

00000110111 11 22

00000101000 11 23

00000010111 11 24

00000011000 11 25

000011001010 12 26

000011001011 12 27

000011001100 12 28

000011001101 12 29

000001101000 12 30

000001101001 12 31

000001101010 12 32

000001101011 12 33

000011010010 12 34

000011010011 12 35

000011010100 12 36

000011010101 12 37

000011010110 12 38

000011010111 12 39

000001101100 12 40

000001101101 12 41

000011011010 12 42

000011011011 12 43

000001010100 12 44

000001010101 12 45

000001010110 12 46

000001010111 12 47

000001100100 12 48

000001100101 12 49

000001010010 12 50

000001010011 12 51

000000100100 12 52

000000110111 12 53

000000111000 12 54

000000100111 12 55

000000101000 12 56

000001011000 12 57

000001011001 12 58

000000101011 12 59

000000101100 12 60

000001011010 12 61

000001100110 12 62

000001100111 12 63





Table 2b. Make Up Black Codes

Code Lng Run

---------------------------

0000001111 10 64

000011001000 12 128

000011001001 12 192

000001011011 12 256

000000110011 12 320

000000110100 12 384

000000110101 12 448

0000001101100 13 512

0000001101101 13 576

0000001001010 13 640

0000001001011 13 704

0000001001100 13 768

0000001001101 13 832

0000001110010 13 896

0000001110011 13 960

0000001110100 13 1024

0000001110101 13 1088

0000001110110 13 1152

0000001110111 13 1216

0000001010010 13 1280

0000001010011 13 1344

0000001010100 13 1408

0000001010101 13 1472

0000001011010 13 1536

0000001011011 13 1600

0000001100100 13 1664

0000001100101 13 1728



Table 3. Extended Make Up Codes (Black and White)

Code Lng Run

---------------------------

00000001000 11 1792

00000001100 11 1856

00000001101 11 1920

000000010010 12 1984

000000010011 12 2048

000000010100 12 2112

000000010101 12 2176

000000010110 12 2240

000000010111 12 2304

000000011100 12 2368

000000011101 12 2432

000000011110 12 2496

000000011111 12 2560

凡是想采用这套压缩方法处理黑白图像数据者,都必须现在程序内存出这三份表格,这样程序才能够参照这些表格,找出正确的编码,编制成压缩数据。

在编制压缩数据的过程中,第一步是先存入一个白点的编码。如果图像数据的第一个Bit值是黑点,就存入点数为0的连续白点编码(00110101),然后才开始存储黑点的编码。这是本压缩方法的一项特殊规定:每行的第一个编码值,必须是连续白点的编码。接下来的问题,则是如何以上述表格内的编码取代图像数据?下面举例说明,假设有某一图像数据的前两行内容如下:

第一列15各黑点,625个白点,3360个黑点

编码:00110101 000011000 01101000 01010010 000000011111

0个白点 15个黑点 576个白点 49个白点 2560个黑点

011001101 000001101010 000000

768个黑点 32个黑点 6个Bits

第二列18个白点,1486个黑点,2496个白点

编码:

0100111 0000001010101 00000111 000000011110 00110101

18个白点 1472个黑点 14个黑点 2496个白点 0个白点

从以上所列举的编码数据中,可以归纳出下列四项编码的原则:

(1) 每行压缩数据的第一个编码,必定是连续白点的编码。即使每行的第一点是黑点,还是得先用00110101(0个白点)作为压缩数据的第一个编码,接着才开始存储数据的第一个编码,接着才开始存储真正代表图形黑点的编码;

(2) 每行压缩数据的Bits总数,必须是8的倍数。如果Bits总数不是8的倍数,就须在每行压缩数据的末端,加上一些值为0的Bits,是Bits总数程为8的倍数。例如,上述实例的第一行压缩数据的Bits总数为66,还缺少六个Bits,才能成为8的倍数,第一列压缩数据的末端,加入了六个值为0的Bits,使Bits总数达到72,足够为8的倍数。至于第二行压缩数据的Bits总数为48,正好是8的倍数,所以就不需要加入一些多余的Bits。

(3) 编码有三种类型。

(A) 点数不超过63,可参照Terminating codes表格,找到对应的编码。这种编码都是只用一个,便代替一串相同的点数。

(B) 点数若在64-1728之间,则根据Terminating codes和Make-up codes表格,寻找编码。如果点数不是与Make-up codes表格数值相等,就需要用两个编码,方能取代一串相同的点数。

(C) 点数多达1792以上,就必须同时参考三份表格,才能找到所要的编码。这时,一串同值点数的编码,可能需要三个。如是点数比2560大很多,则需要的编码,就不止三个了。

(4) Additional mak-up codes表格内的编码,可以同时代表连续白点或黑点,,所以这个表格的编码后面,就要带有另外两个表格的编码,才能让解压缩程序知道究竟所读取的编码是代表白点或黑点。例如,上述范例的第二行有一串连续变点的点数为2496,恰好与Additional mak-up codes表格内第12项点数值相同。所以即在000000011110(2496个连续白点或黑点)编码之后,加上00110101(0个白点),表示000000011110是代表2496个连续白点。



以上摘自《探索图像文件的奥秘》 李振辉及RFC804

我的经验:

当一个连续白点或黑点只用到Make-up codes或

Additional make-up codes这两个表格时,后面必须加上00110101(0个白点)或 0000110111(0个黑点)

例如:

列 1792个白点

编码:00000001000 00110101 00000

1792个白点 0个白点 5个Bits

列 128个黑点

编码:00110101 000011001000 0000110111 00

0个白点 128个黑点 0个黑点 2个Bits

列 2624个白点

编码 000000011111 11011 00110101 0000000

2560个白点 64个白点 0个白点 7个Bits

列 2625个白点

编码 000000011111 11011 000111 0

2560个白点 64个白点 1个白点 1个Bits


 
你看懂了,也就知道如何去做了
 

lyywy,非常感谢。

你给的资料中有些是我没有见过的,但是你没有讲到如何去处理坏线,

也就是一页A4当有1728点,如果在解码中,由于出现了传输错误,使象

素数不等于1728时,判断为坏线。可是如何处理这条坏线?书中有介绍

说是重画上一条线,但是效果不理想。你可有解决的方法?



另外,你介绍的控件已不能下载


 
我刚才试了一下下载,没有问题。
我的本意是想让你换控件集。因为那个确实不错,还有源码。
据我所知,传真机不是一种压缩方法。
我想,第一传真应该有错误从发机制吧,所以对于你需要的数据来说应该不会出错。
第二,可以参考上一行,或上一列,来画出坏的这一线,

如果你还是下载不了,把你的email留下,我发给你,好像比较大。
我强烈建议更换控件,那是个通讯方面的空间包,很好用
 
lyywy,如果方便的话,请将你所说的控件发给我:zhou_hao@371.net,谢谢!
 
奇怪我昨天下载试了一下还没事呢,
不好意思,那个包在家里,我明天上午发给你好吗?
另,你的mail空间有多大?
 
http://www.inprises.com/control/Turbopower.Async.Professional.v3.06-FCN.rar
我又找到了个连接13M,我试了一下是可以下载的,带源码,我家的那个是3.0的

页面在
http://www.inprises.com/control/index.htm
 
TO lyywy:

哥们儿,昨天我从你给的连接处下载了该控件集,Very Cool! 真是太好了,近乎完美!

但还是有一点点问题,该控件集在win2000下似乎不能很好地工作,我再想想办法,看能不

能解决。

 
多人接受答案了。
 
lyywy,其余的分也已发出,在本区。标题是:lyywy请来取分,共两处。
 
后退
顶部