Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# iTextSharp,为什么创建PDF文件时,其大小比包含图像的原始文件夹大2倍?_C#_Pdf_Itext_Png_Tiff - Fatal编程技术网

C# iTextSharp,为什么创建PDF文件时,其大小比包含图像的原始文件夹大2倍?

C# iTextSharp,为什么创建PDF文件时,其大小比包含图像的原始文件夹大2倍?,c#,pdf,itext,png,tiff,C#,Pdf,Itext,Png,Tiff,我需要完成的PDF文件要比原始图像文件夹小30% 有一个包含tiff格式图像的文件夹。然后我为每页添加一个图像(Doc=newdocument(),等等),得到的文档大小等于图像文件夹的大小。但在通过doc.Close()后,PDF文件大小增加了两倍(因此我稍后使用压缩PDF,然后文件与文件夹大致相等),但我需要完成的PDF文件比原始图像文件夹小30%。大多数图像格式已经压缩,因此不再压缩。PDF通常会压缩,因为它们大部分是文本,但大部分是图像的PDF不会压缩 此外,压缩例程通常假定数据适合压缩

我需要完成的PDF文件要比原始图像文件夹小30%


有一个包含tiff格式图像的文件夹。然后我为每页添加一个图像(Doc=newdocument(),等等),得到的文档大小等于图像文件夹的大小。但在通过doc.Close()后,PDF文件大小增加了两倍(因此我稍后使用压缩PDF,然后文件与文件夹大致相等),但我需要完成的PDF文件比原始图像文件夹小30%。

大多数图像格式已经压缩,因此不再压缩。PDF通常会压缩,因为它们大部分是文本,但大部分是图像的PDF不会压缩

此外,压缩例程通常假定数据适合压缩。如果你给他们预压缩的数据,结果可能是一个更大的文件。如果不看你的文件,很难准确说出发生了什么,但我想这就是原因


如果你想要一个更小的文件,你必须减少图像中的信息量。裁剪、减少颜色深度、增加压缩或减少图像数量。

大多数图像格式已经压缩,因此不再压缩。PDF通常会压缩,因为它们大部分是文本,但大部分是图像的PDF不会压缩

此外,压缩例程通常假定数据适合压缩。如果你给他们预压缩的数据,结果可能是一个更大的文件。如果不看你的文件,很难准确说出发生了什么,但我想这就是原因


如果你想要一个更小的文件,你必须减少图像中的信息量。裁剪它们、减少颜色深度、增加压缩或减少图像数量。

我从另一个pdf获取图像,它们的格式定义为PNG。我试过:1。保留PNG格式的图像并将其添加到PDF中(原始图像文件夹约为~52MB,添加所有图像后的PDF约为~52MB,通过代码doc.Close()中的行后的PDF,压缩后的PDF约为~54)2。以TIF格式保存图像,无需压缩(大小与第1点相同)3。将图像保存在TIF CCITT6中(添加所有图像后的源图像文件夹约为23Мб,PDF,在代码doc.Close()中的行通过后的PDF约为48MB,压缩后的PDF约为24MB)。doc.Close()时会发生什么情况,因为大小膨胀?打开行李?如果没有看到完整的代码和文件,就不可能给出比Robin已经给出的优秀答案更完整的答案。(向上投票)如我所说,我猜大小的增加是由于试图压缩已经高度压缩的文件。您提到的所有文件格式都包括压缩。尝试将你的一个文件转换为BMP(它会更大),然后压缩它(它应该缩小到接近原始大小)我从另一个pdf中获取图像,它们的格式定义为PNG。我试过:1。保留PNG格式的图像并将其添加到PDF中(原始图像文件夹约为~52MB,添加所有图像后的PDF约为~52MB,通过代码doc.Close()中的行后的PDF,压缩后的PDF约为~54)2。以TIF格式保存图像,无需压缩(大小与第1点相同)3。将图像保存在TIF CCITT6中(添加所有图像后的源图像文件夹约为23Мб,PDF,在代码doc.Close()中的行通过后的PDF约为48MB,压缩后的PDF约为24MB)。doc.Close()时会发生什么情况,因为大小膨胀?打开行李?如果没有看到完整的代码和文件,就不可能给出比Robin已经给出的优秀答案更完整的答案。(向上投票)如我所说,我猜大小的增加是由于试图压缩已经高度压缩的文件。您提到的所有文件格式都包括压缩。尝试将您的一个文件转换为BMP(它会更大),然后压缩(它应该缩小到接近原始大小)请共享示例代码和数据以重现问题。请共享示例代码和数据以重现问题。