android - 有什么办法可以减小 PNG 的大小?

标签 android png image-compression

作为 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/

相关文章:

android - Android 主屏幕旋转时不会调用 Widget onUpdate()

android - Android Google Maps API 中数以千计的多边形给主线程带来了负担

html - 图片在 IE 中不显示

html - PNG 图像未在 iPhone 上显示

png - PNG是否支持诸如作者,相机型号等元数据字段?

optimization - 优化灰度文本文档图像的 JPEG 量化表

java - 当用户从图库上传图像并在textView中显示它们时,如何获取图像名称?

android - 数据范围过滤器在 Android 中使用的 SQLite 中不起作用

javascript - 即使质量为 100,Cordova 相机 getPicture 也是无损压缩

image-processing - 即时无损图像压缩