Konica Bizhub 扫描仪和打印机能够在 300 DPI 彩色模式(称为紧凑模式)下创建轻量级 pdf 文件。
这样的文件真的很小(最多200 KB)。当你放大时,它看起来是一张 2 色图片, 但是包含颜色部分(如果有的话)。
作为一名程序员,我正在寻找从“原始”扫描图像(bmp、tiff 等)创建此类文件的方法,以大幅减少输出图像的大小,但通常要实现 Konica 所做的事情。
谁能建议我应该对原始图像执行什么操作来实现类似的效果?
或者也许有第 3 方库可用于这种场合?
作为软件编程仿真练习,我们需要考虑扫描固件和 PDF 软件如何完成任务。
背景资料
扫描仪使用多种方法来保存页面数据,因此“相机”类型的扫描仪将以最大 RAW 分辨率截取整页屏幕截图,而“一体式”扫描仪可能会吞下整个宽度并转储为数据带,或者一次解析一个像素行并在文件压缩阶段组合成一个完整的“页面”。还有其他方法,例如固定头WIDE马车“CCD相机”是静止的,媒体在头上移动,然后逐行存储像素。
在大多数情况下,需要大量内存来缓冲完全未压缩的扫描页面。
未压缩的“位图图像”没有严格的格式,但可以转换为无损或有损图像。
从示例中可以看出,在不阅读手册的情况下,在这种情况下,缓冲区被解析为单色区域,然后将其转换为 2 色位掩码,具有无损高分辨率(300 dpi 密度压缩到 CCITT G4)和剩余区域以较低密度(相当于 150 dpi)存储为有损全彩色压缩 Jpeg
然后将 Jpeg 用作背景,CCITT 区域在其上盖章。这里是定义图像的点,它是低阶对象(#3),但在定义所有其他页面相关区域之后在过程的后期写入。
3 0 obj
<</JI1Obj1 5 0 R
/TI1Obj1 7 0 R
/TI1Obj2 9 0 R
/TI1Obj3 11 0 R
>>
我们可以将其解释为
不太明显的是如何在页面的遮罩中定义单一颜色。
在布置中完成
4 0 obj
<</Length 503>>
stream
q
595.200 0.000 0.000 841.680 0.000 0.000 cm
/JI1Obj1 Do
Q
0.957 0.396 0.388 rg
q
458.880 0.000 0.000 111.360 71.040 517.200 cm
/TI1Obj1 Do
Q
0.110 g
q
456.960 0.000 0.000 281.280 71.040 58.320 cm
/TI1Obj2 Do
Q
0.133 g
q
456.960 0.000 0.000 128.640 71.040 640.080 cm
/TI1Obj3 Do
Q
所以首先使用多色低分辨率 jpg 作为主体,然后将颜色设置为红色 并带有蒙版叠加。
然后将一张图像设置为炭灰色/蓝色 1
和不同的平均墨水颜色炭灰色/蓝色 2
因此,只要知道放置区域和它们的平均墨水颜色,构建这样一个紧凑的格式就相对简单了。