我试图通过减少width,height和colorChannel中的像素值来减小图像的大小。我试图将其设为0(表示黑色),然后文件大小的值增加。
任何人都可以建议我如何在不使用imresize的情况下减小尺寸。
答案 0 :(得分:0)
您可以通过删除质量参数来减小图像的大小(在下面的示例中等于75)
sharp('input.jpg')
.resize(300)
.quality(75)
.toFile('result.jpg', function(err, info) {
if(err) console.error(err);
console.log(info);
});
答案 1 :(得分:0)
在matlab中,size
指的是矩阵的行数和列数(或者对于大于2的维度,它是每个维度的长度。
e.g。
>> A = [0.1,0.2,0.3,0.4,0.5;0.6,0.7,0.8,0.9,1];
>> size(A)
ans =
2 5
>> whos A
Name Size Bytes Class Attributes
A 2x5 80 double
A在内存中占用80个字节,因为它是double
类型的数组。
如果要将A用作图像,减少其内存占用的方法是将其转换为无符号的8位整数类型,即uint8:
>> A = im2uint8(A)
A =
26 51 77 102 128
153 179 204 230 255
>> whos A
Name Size Bytes Class Attributes
A 2x5 10 uint8
但我不知道你为什么要关心matlab工作区的内存占用。
听起来像你可能想要说的是你想要获得一个更小但不牺牲分辨率的文件。但如果是这种情况,您需要指定我们正在谈论的输出文件类型。如果它只是一个matlab .mat
文件,那么上面就可以了。如果您尝试转换为.jpg
或.png
或其他内容,那么它只取决于您传递到导出功能的选项类型,这将决定压缩质量等。< / p>
如果您需要实际有用的帮助,请进一步澄清您的问题。