【发布时间】:2019-11-13 14:57:14
【问题描述】:
我的位图太大,无法上传到打印机。我将把它压缩到更小的尺寸,以便通过打印机传输更少的数据。但我不想减少位图的长度和宽度。我已经做了一些研究,但它们都需要一个流,尤其是如下
bitmap.compress(Bitmap.Format.jpeg,50,outputStream);
为什么我需要一个流来存储文件?我怎样才能跳过它并获得我想要的压缩位图?我试过了
originalBitmap = Bitmap.decodeByteArray(imageByteData);
//Line below not working and got error
compressedBitmap = Bitmap.compress(Bitmap.Format.jpeg,50,outputStream);
在我的下载文件夹 outputStream 中,我确实看到了压缩图像,但我怎样才能再次访问压缩图像?不幸的是,压缩方法并不是那么简单。我的问题是如何压缩位图并在另一个操作中使用压缩位图?谢谢。
【问题讨论】:
-
非常不清楚。 您的位图是否太大而无法上传到打印机。?时间?结果输出?您实际上不需要的数据太多? - 流与否与它无关。
-
您的问题的答案是“使用 Bitmap.Compress”,您已经在这样做了。您的核心问题似乎是您不了解 I/O 在 C# 中的工作原理。如果您将压缩位图写入文件流,则只需打开该文件即可读取结果输出。
-
嗨@TaW,我的位图快3MB了,当我调试时,将数据发送到打印机的代码行在进入下一行之前需要很长时间才能完成。
-
我们看不到您的代码细节,能否请您发布一个基本的演示,以便我们更好地帮助您?