有一上百兆的JPG图片,完全读入TJPEG对象不行,我想分段读入,具体应该怎么做?(50分)

  • 主题发起人 主题发起人 cuiax
  • 开始时间 开始时间
读文件流存储可存储在一个或多个blob字段理,用blob.write or read读或写。
 
是啊,用正常的文件操作就可以的。设个buffer,read,write.
 
kao,什么图片上百兆??
 
一百兆JPEG,有啊!工程图纸几十米长几米宽的。
怎么读该文件的一段装入TJPEG中。
最好有代码说明。
 
完全把它当成二进制文件 用fileStreem 把它的片段镜象成几个文件
需要时再连接恢复

过两天,我得做类似的事
需要的话 mail我(cat..yy@263.net)
 
如果需要整体处理,比如打印, 我想还是需要一起读入的, 因为我如果简单的割裂文件, JPEG
文件格式可能就被破坏了.可以从两种角度看这个问题:
1. 想想用PhotoShop之类的图形处理程序读这个文件,是不是也很慢,本来处理图形就需要
机器有非常大的内存. 所以可以给你的机器配置1G~2G的内存.
2. 如果大内存不可得,可以在图形输入时就把它分成好多小快处理,但是打印时拼节比较麻烦
为了显示方便,可以生成小分辨率的图形,速度快,显示效果也好.

另外在说一句(不解的问): 既然是工程图纸,为什么不用工程OCR软件转换成CAD的矢量文件格式呢?
 
jpeg可是压缩的,它要显示得先解压成bitmap,如果你的图纸是单色或较少
变化,压缩比可以很高,天啊,方在内存里的展开的bitmap要多少资源!!
 
jpeg是压缩的格式
to cat。yy 如何能将一个jpeg文件方在一个流里,我试过好多次,创建一个内存流bmpstream
然后 tjpeg。savetostream(bmpstream);
但是 bmpstream。size 始终为零
另外:你的意思好像是将一个文件分割,不过是图片而已
单分割后的每块文件都失去了jpeg的格式,如何分块显示
有没有办法将文件分割后,仍是使每块文件都成为jpeg格式,每块可以单独的显示
 
必须要有 jpeg 图形读写的源程序才行啊。参照一下,可以改出来的,
实现可不简单啊!
 
多人接受答案了。
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部