gpt4 book ai didi

image - 生成任意文件大小的图像文件

转载 作者:行者123 更新时间:2023-12-04 17:59:15 25 4
gpt4 key购买 nike

对于我正在进行的网络实验,我需要任意大小的图像文件。

我不知道如何创建此类文件。我需要 JPEG、PNG 和 PDF 格式的 5MB、10MB 和 20MB 文件。

在我第一次尝试生成这些文件时,很明显,由于这些格式的压缩方案,不可能(或者至少我不知道如何)仅通过指定空白文件的分辨率来生成任意大小的文件。

是否有一种快速(编程?)方法可以生成这些文件?

编辑:我正在研究创建任意大小的虚拟文件,但如果有一种方法可以创建具有正确内部格式的实际 JPEG、PNG 或 PDF,那将是理想的。

最佳答案

这只是一个建议。不知道它是否会起作用。

也许您可以生成正确大小的位图并进行转换?

如果您使位图很难压缩(1)?然后,您应该能够将它们转换为非常接近目标尺寸的 jpg 和 png。

(1) 我的建议是,这可以通过使位图中的每个像素具有不同的颜色来实现(尽可能)

编辑:
这个简单的解决方案可能不适用于 jpg,但至少 png 似乎有效。

我在 c# 中编写了一个小的 testapp 来尝试一下。这是它的肉:

private void make_bitmap(int width, int height)
{
Random random = new Random();
Bitmap B = new Bitmap(width, height);
int redvalue = 0;
int greenvalue = 0;
int bluevalue = 0;

bool pick_random_color = true;
for (int x = 0; x < width; x++)
{
for (int y = 0; y < width; y++)
{
Color col;
if (pick_random_color)
{
col = Color.FromArgb(random.Next(0, 255), random.Next(0, 255), random.Next(0, 255));
}
else // iterate over all colours repeatedly
{
if (redvalue == 255) { redvalue = 0; greenvalue++; } else { redvalue++; }
if (greenvalue == 256) { greenvalue = 0; bluevalue++; }
if (bluevalue == 256) { redvalue = 0; greenvalue = 0; bluevalue = 0; }
col = Color.FromArgb(redvalue, greenvalue, bluevalue);
}
B.SetPixel(x, y, col);
}
}
B.Save("image.bmp");
B.Save("image.jpg", ImageFormat.Jpeg);
B.Save("image.png", ImageFormat.Png);
B.Dispose();
}

关于image - 生成任意文件大小的图像文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1893907/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com