作为
bm.compress(Bitmap.CompressFormat.PNG, 50, out);
//这里 50 将不起作用,因为 PNG 是无损的
如何减小 .png 图像的大小? 还只是处理从 drawable 到外部位置使文件大小增加 5 到 10 倍?
Bitmap bm=BitmapFactory.decodeResource(getResources(),R.drawable.ic_launcher);
String extStorageDirectory = Environment.getExternalStorageDirectory().toString();
File file = new File(extStorageDirectory, "ic_launcher.PNG");
outStream = new FileOutputStream(file);
bm.compress(Bitmap.CompressFormat.PNG, 100, outStream);
outStream.flush();
outStream.close();
最佳答案
1) 如果您的 png 是预定义的,您可以使用 tiny png服务有非常小的 png。该服务将 png 大小减少了大约 60%,没有任何明显的变化。 2) 如果你的 png 是在运行时创建/获取的,请尝试使用 Bitmap.createScaledBitmap()方法。使用这种方法,您可以创建小尺寸的 png。
方法中
bm.compress(Bitmap.CompressFormat.PNG, 100, outStream)
;
100 在 PNG 的情况下被忽略。因为它是无损的。相反,您可以使用
bm.compress(Bitmap.CompressFormat.JPEG, 80, outStream);
这个会给你小尺寸,压缩速度更快。
关于android - 有什么办法可以减小 PNG 的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39793619/