我正在开展一些项目,我需要有大量预定义大小的图像文件(最好是jpg)格式(不是高度和宽度,而是文件大小,单位为Kb / Mb)。
所以我可能需要生成一个大小为100 KB的随机图像和另一个大小为2 MB的随机图像。
我应该如何使用NodeJS进行此操作?
我发现this Random Image Generator code生成了一个随机图片,但它不允许我指定文件大小。
欢迎所有建议和猜测。
答案 0 :(得分:2)
我不会说节点,但是在使用ImageMagick的命令行中,这将为您提供一个大的JPEG图像:
convert -size 1000x2000 xc:gray +noise gaussian large.jpg
如果您使用-define jpeg:extent=400kb
,那么您将获得400kb文件,+ / - 一点:
convert large.jpg -define jpeg:extent=400kb 400kb.jpg
更改400kb
以满足您的需求。如果你想一次性完成所有这些,你可以这样做:
convert -size 1000x2000 xc:gray +noise gaussian jpg: | convert -define jpeg:extent=400kb - 400kb.jpg
在节点中,您可以使用原始界面吗?它看起来像
im.convert(['-size','1000x2000','xc:gray','+noise','gaussian','output.jpg'],
function(...)
答案 1 :(得分:1)
您需要确定哪些尺寸和DPI会为您提供所需的文件大小。鉴于你似乎并不太关心图像的样子,让我们伪随机选择100 DPI。
在100 DPI时x
英寸y
英寸的图像将占用
(100*x)*(100*y)==fileSize
每个颜色通道。如果你正在寻找全彩色,你需要其中三种,所以
3*(100*x)*(100*y)==fileSize
现在您需要放入fileSize
,选择x
或y
的值,求解其他值并生成x
的图片{ {1}}在100 DPI时生成所需的文件大小。