1

我在函数中有以下代码行。从中读取图像Amazon S3。我正在阅读的图像大小为 1.37 MB,当我运行分析器时,它说图像魔法库中的读取功能需要 5.6 MB,这非常高。谁能解释这种行为?我附上了我的分析器的快照以及代码。

 AmazonS3 client = Amazon.AWSClientFactory.CreateAmazonS3Client(
                         accessKey,
                         secretKey
                        );

                GetObjectRequest request = new GetObjectRequest
                {
                    BucketName = bucketName,
                    Key = keyName
                };

                var response = client.GetObject(request);                
                MagickImage imgStream = new MagickImage(response.ResponseStream);

在此处输入图像描述

4

1 回答 1

2

磁盘上的图像大小对于内存中图像的大小并不重要。所需的内存量与图像的尺寸(宽度/高度)有关。加载图像时,原始数据将“转换”为像素数据。对于每个通道,Magick.NET 将使用每像素 8 位或 16 位 (Q8/Q16)。因此,当您有一个 4 通道 (RGBA) 的图像并且您使用的是 Magick.NET 的 Q16 版本时,您将使用每像素 64 位。对于 1920x1080 的图像,您将需要1920*1080*64 = 132710400 bits,这就是16.5 Megabytes. 大多数时候,磁盘上的大小会更小,因为大多数图像格式在将像素数据保存到磁盘时都会对其进行压缩。

于 2016-01-12T11:55:30.983 回答