png图片太大怎么压缩(png图片怎么压缩大小)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了png图片太大怎么压缩(png图片怎么压缩大小)相关的知识,希望对你有一定的参考价值。
参考技术A 您好,我就为大家解答关于png图片太大怎么压缩,png图片怎么压缩大小相信很多小伙伴还不知道,现在让我们一起来看看吧!1、调整PNG图片的大...
您好,我就为大家解答关于png图片太大怎么压缩,png图片怎么压缩大小相信很多小伙伴还不知道,现在让我们一起来看看吧!
1、调整PNG图片的大小可以通过在线改图宝实现,具体的操作步骤如下:首先在百度的搜索框中输入改图宝、然后点击【百度一下】。
2、2、然后在搜索出来的结果中点击【改图宝-在线修改 官网】。
3、3、进入到官网主页后,然后点击【选择并上传图片】。
4、4、接下来选择你要调整的PNG图片,然后点击【打开】。
5、5、进入到改变图片的设置页面以后,在页面的下方点击【改变尺寸】。
6、6、接下来在弹出来的页面选择【指定尺寸】。
7、7、最后输入你要PNG图片的尺寸大小,然后点击【确定修改图片】就可以实现调整PNG图片大小的要求了。
android 如何压缩png图片字节数
如果你只是觉得程序背景图片大的话 这个应该是美工的问题 找个专业的美工设计下就Ok的
如果是程序中想压缩图片的话 网上的方法很多
下面代码是将图片按比例大小压缩方法(根据Bitmap图片压缩)
private Bitmap comp(Bitmap image)ByteArrayOutputStream baos = new ByteArrayOutputStream();
image.compress(Bitmap.CompressFormat.JPEG, 100, baos);
if( baos.toByteArray().length / 1024>1024) //判断如果图片大于1M,进行压缩避免在生成图片(BitmapFactory.decodeStream)时溢出
baos.reset();//重置baos即清空baos
image.compress(Bitmap.CompressFormat.JPEG, 50, baos);//这里压缩50%,把压缩后的数据存放到baos中
ByteArrayInputStream isBm = new ByteArrayInputStream(baos.toByteArray());
BitmapFactory.Options newOpts = new BitmapFactory.Options();
//开始读入图片,此时把options.inJustDecodeBounds 设回true了
newOpts.inJustDecodeBounds = true;
Bitmap bitmap = BitmapFactory.decodeStream(isBm, null, newOpts);
newOpts.inJustDecodeBounds = false;
int w = newOpts.outWidth;
int h = newOpts.outHeight;
//现在主流手机比较多是800*480分辨率,所以高和宽我们设置为
float hh = 800f;//这里设置高度为800f
float ww = 480f;//这里设置宽度为480f
//缩放比。由于是固定比例缩放,只用高或者宽其中一个数据进行计算即可
int be = 1;//be=1表示不缩放
if (w > h && w > ww) //如果宽度大的话根据宽度固定大小缩放
be = (int) (newOpts.outWidth / ww);
else if (w < h && h > hh) //如果高度高的话根据宽度固定大小缩放
be = (int) (newOpts.outHeight / hh);
if (be <= 0)
be = 1;
newOpts.inSampleSize = be;//设置缩放比例
newOpts.inPreferredConfig = Config.RGB_565;//降低图片从ARGB888到RGB565
//重新读入图片,注意此时已经把options.inJustDecodeBounds 设回false了
isBm = new ByteArrayInputStream(baos.toByteArray());
bitmap = BitmapFactory.decodeStream(isBm, null, newOpts);
return compressImage(bitmap);//压缩好比例大小后再进行质量压缩
【ps:看你自己的需要吧 给个地方做参考 http://my.eoe.cn/isnull/archive/564.html 你也可以搜索下 其他的方法 】
如果你只是觉得程序背景图片大的话 这个应该是美工的问题 找个专业的美工设计下就Ok的
如果是程序中想压缩图片的话 网上的方法很多
下面代码是将图片按比例大小压缩方法(根据Bitmap图片压缩) 参考技术B 解决方案1:
private Bitmap comp(Bitmap image)
ByteArrayOutputStream baos = new ByteArrayOutputStream();
image.compress(Bitmap.CompressFormat.JPEG, 100, baos);
if( baos.toByteArray().length / 1024>1024) //判断如果图片大于1M,进行压缩避免在生成图片(BitmapFactory.decodeStream)时溢出
baos.reset();//重置baos即清空baos
image.compress(Bitmap.CompressFormat.JPEG, 50, baos);//这里压缩50%,把压缩后的数据存放到baos中
ByteArrayInputStream isBm = new ByteArrayInputStream(baos.toByteArray());
BitmapFactory.Options newOpts = new BitmapFactory.Options();
//开始读入图片,此时把options.inJustDecodeBounds 设回true了
newOpts.inJustDecodeBounds = true;
Bitmap bitmap = BitmapFactory.decodeStream(isBm, null, newOpts);
newOpts.inJustDecodeBounds = false;
int w = newOpts.outWidth;
int h = newOpts.outHeight;
//现在主流手机比较多是800*480分辨率,所以高和宽我们设置为
float hh = 800f;//这里设置高度为800f
float ww = 480f;//这里设置宽度为480f
//缩放比。由于是固定比例缩放,只用高或者宽其中一个数据进行计算即可
int be = 1;//be=1表示不缩放
if (w > h && w > ww) //如果宽度大的话根据宽度固定大小缩放
be = (int) (newOpts.outWidth / ww);
else if (w < h && h > hh) //如果高度高的话根据宽度固定大小缩放
be = (int) (newOpts.outHeight / hh);
if (be <= 0)
be = 1;
newOpts.inSampleSize = be;//设置缩放比例
newOpts.inPreferredConfig = Config.RGB_565;//降低图片从ARGB888到RGB565
//重新读入图片,注意此时已经把options.inJustDecodeBounds 设回false了
isBm = new ByteArrayInputStream(baos.toByteArray());
bitmap = BitmapFactory.decodeStream(isBm, null, newOpts);
return compressImage(bitmap);//压缩好比例大小后再进行质量压缩
参考技术C 字节数就是大小啊 随便下个解压缩软件就行了 参考技术D 不知道你的图片存放的什么内容,可以试试 9patch (9.png)
以上是关于png图片太大怎么压缩(png图片怎么压缩大小)的主要内容,如果未能解决你的问题,请参考以下文章