我在我的移动应用程序中拍了一张截屏,将其保存为PNG格式后,在磁盘上大约需要32 KB的空间。
我将这些截屏发送到一个中央SQL Server,并且32 KB对于我每天需要存储的截屏数量(大约2500次)来说太大了。
有没有什么技巧可以让它保存得更小?
这是我现在使用的代码,将它从 Bitmap
转换为字节(以便发送到服务器进行存储):
MemoryStream stream = new MemoryStream();
_signatureImage.Save(stream, ImageFormat.Png);
return stream.ToArray();
_signatureImage
是一个 Bitmap
,也就是所讨论的屏幕截图。
这是我保存的屏幕截图的示例:
以下是一些想法(但我不知道如何实现):
- 减小图片的实际高度和宽度(但希望不会扭曲图片形状)。
- 将其转换为黑白图像(不确定是否会有实质性的空间节省)。
- 更多地压缩它(我不太喜欢这个方法,因为这样从数据库中读取时不易读)。
注意,所有这些都必须通过程序完成,且不能花费太长时间,因此复杂的图像处理操作不可行。
感谢任何帮助。