非静态方法'compress(android.graphics.Bitmap.CompressFormat,int,java.io.OutputStream)'不能从静态上下文引用

时间:2018-09-03 04:20:34

标签: android android-bitmap

我尝试使用以下方法在我的android应用中压缩图像:

Bitmap.compress(Bitmap.CompressFormat.JPEG, 40, byteArrayOutputStream);

但是我遇到了以上错误。对于我来说,没有遇到错误的最好方法是什么?

1 个答案:

答案 0 :(得分:1)

Bitmap中的compress() method是一种“实例方法”(与“静态方法”相对)。这意味着必须在实际的现有Bitmap对象上而不是Bitmap类本身上调用它。

换句话说:

Bitmap uncompressed = /* some bitmap you've gotten from somewhere */
ByteArrayOutputStream out = new ByteArrayOutputStream();
uncompressed.compress(..., out);
Bitmap compressed = BitmapFactory.decodeStream(new ByteArrayInputStream(out.toByteArray()));

这里是在compress()位图实例上调用uncompressed

从某种程度上说,这很直观。如果您能够简单地编写:

Bitmap compressed = Bitmap.compress(...);

然后您必须问自己:您要压缩什么?