分辨率不会改变像素的数量,只会改变像素的显示大小——增加分辨率会使显示变大,但不会使文件变大。
如果您制作的 JPEG 会一遍又一遍地重复相同的信息,它会变得更大——压缩是基于 8x8 单元格的——如果您有更多的单元格,您将拥有更多的数据。要使它们更大,请将质量设置为 100 进行编码。另外,JPEG 会以单元为单位去除亮度,因此色调变化比亮度变化压缩得更差。
我使用我公司的产品DotImage 使用此代码创建了一个 10mb 的 jpg。您可以下载一个 eval 并尝试一下,或者对您的图像 SDK 执行相同的操作。
using System;
using System.Drawing;
using Atalasoft.Imaging;
using Atalasoft.Imaging.Codec;
using Atalasoft.Imaging.Drawing;
namespace MakeLargeImage
{
class Program
{
static void Main(string[] args)
{
AtalaImage img = new AtalaImage(1000, 8000, PixelFormat.Pixel24bppBgr);
Canvas c = new Canvas(img);
for (int block = 0; block < img.Height; block += 1000)
{
for (int line = 0; line < 1000; line += 4)
{
int y = block + line;
c.DrawLine(new Point(0, y), new Point(img.Width, block), new AtalaPen(Color.Yellow));
c.DrawLine(new Point(0, y + 1), new Point(img.Width, y + 1), new AtalaPen(Color.Red));
c.DrawLine(new Point(0, y + 2), new Point(img.Width, y + 2), new AtalaPen(Color.Green));
c.DrawLine(new Point(0, block), new Point(img.Width, y + 3), new AtalaPen(Color.Blue));
}
}
JpegEncoder jpeg = new JpegEncoder(100);
img.Save("10mb.jpg", jpeg, null);
}
}
}
如果您增大图像像素大小,JPEG 文件会变大。您也可以添加元数据,但很难获得仅包含元数据的大文件,因为存在一些大小限制。
PDF 是最简单的——只需用未压缩的图像制作一个大页面并不断添加页面——它会很快变大——除非你打开它,否则没有压缩。您可以在 DotImage 中使用 PdfEncoder 轻松完成此操作——只需在 FileSystemImageSource 中给它一个 jpg 列表——代码未显示为不会让所有人感到厌烦,但我很乐意将它提供给任何想要的人它 - 只需致电 Atalasoft 并询问我(或打开支持案例并参考此问题。