Android .png和.jpg图片用什么样的方式不会造成内存溢出 5C

Android .png和.jpg图片用什么样的方式不会造成内存溢出

7个回答

压缩图片,没有方式,只是文件大小问题

在源头上控制图片的大小 就是在服务器上控制图片大小 你获取到的图片就是处理过的 比较小的 还有就是自己拿到网络图片之后 感觉还是大的话 就自己做压缩吧

用glide就可以,它会自动压缩图片,不会造成内存浪费

自己压缩呗,自己控制图片大小的,如果不压缩,图片太大了什么格式都会内存溢出的

不是格式的问题,主要是内存太大导致的内存溢出,自己压缩图片,确保内存不溢出。
压缩方法:
/**
* 压缩图片(质量压缩)
*
* @param bitmap bitmap
*/
public File compressImage(Bitmap bitmap) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);//质量压缩方法,这里100表示不压缩,把压缩后的数据存放到baos中
int options = 100;
while (baos.toByteArray().length / 1024 > 500) { //循环判断如果压缩后图片是否大于500kb,大于继续压缩
baos.reset();//重置baos即清空baos
options -= 80;//每次都压缩80%
bitmap.compress(Bitmap.CompressFormat.JPEG, options, baos);//这里压缩options%,把压缩后的数据存放到baos中
// long length = baos.toByteArray().length;
}
String filename = TimeUtil.longToDate(System.currentTimeMillis());
File file = new File(cropIconDir, filename + ".png");
try {
FileOutputStream fos = new FileOutputStream(file);
try {
fos.write(baos.toByteArray());
fos.flush();
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
recycleBitmap(bitmap);
return file;
}

    望采纳!

压缩图片,或者裁剪图片大小,jpg支持图片压缩,png不行,只能裁剪图片大小

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Android图片 JPG PNG的取舍
-
读取图片造成内存溢出。。。
有两个界面,活动列表和活动详情,点击列表item可跳转到对应活动详情,活动详情点击返回跳到列表,现在活动详情界面的图片显示正常,第一次跳到列表也可以,第二次系统就崩溃了显示内存溢出,怎么解决此问题啊。。。[code=javascript]/** 从缓存中获取图片 **/rn public Bitmap getImage(final String url) rn final String path = getDirectory() + "/" + convertUrlToFileName(url);rn System.out.println("path:"+path);rn File file = new File(path);rn if (file.exists()) rn rn Bitmap bmp = BitmapFactory.decodeFile(path);rn if (bmp == null) rn file.delete();rn else rn updateFileTime(path);rn return bmp;rn rn rn return null;rn [/code]rn中 Bitmap bmp = BitmapFactory.decodeFile(path);rnrnrn[code=javascript]if (result == null) rn System.out.println("内存中没获取到");rn // 文件缓存中获取rn result = fileCache.getImage(url);[/code]rn中 result = fileCache.getImage(url);rnrnrn[code=javascript]if (list.size() >= (1 + arg0)) rn hdbean = list.get(arg0);rn carxing.setText(hdbean.getActivityName());rn time.setText(hdbean.getSendTime());rn // time.setText(hdbean.getValidityTime());rnrn Bitmap b1 = Snippet.getBitmap(URLs.http_head + hdbean.getPicture(),rn new ImageCallback() rnrn public void imageLoaded(Bitmap imageDrawable,rn String imageUrl) rnrn BitmapDrawable s = new BitmapDrawable(imageDrawable);rn huodongview.setBackgroundDrawable(s);rn rn );rnrn if (b1 != null) rn BitmapDrawable b = new BitmapDrawable();rn b =(BitmapDrawable) hdcontext.resizeImage(b1, 150,100);rn// BitmapDrawable s = new BitmapDrawable(b1);rn huodongview.setBackgroundDrawable(b);rn rn [/code]rn中 Bitmap b1 = Snippet.getBitmap(URLs.http_head + hdbean.getPicture(),rn跪求大神给看看怎么解决。。。
android 本地大图片造成内存溢出的解决方案
在使用中,小的图片,可以通过drawable直接引用setImageResource或者setBackgroundResource, 但涉及到大图时,尽量通过decodeStream来创建bitmap,然后再给对应的view使用。 public static Bitmap readBitMap(Context context, int resId) {         BitmapFactory...
jpg与png图片的优缺点
jpg 优点:尺寸较小,节省空间;打开速度快 缺点:有损格式,在修图时不断保存会导致图片质量不断降低;不支持透明 png 优点:无损格式,不论保存多少次,理论上图片质量都不会受任何影响;支持透明 缺点:尺寸过大;打开速度与保存速度和jpg没法比   ps:在开发中,尺寸比较大的图片(例如背景图片)一般适用jpg格式,减小对内存的占用!   参考:http://www.cnblog...
PNG,JPG图片的辨别
static inline NSPUIImageType NSPUIImageTypeFromData(NSData *imageData) {     if (imageData.length > 4) {         const unsigned char * bytes = [imageData bytes];         if (bytes[0] == 0xff &&
png图片转jpg
使用java处理的png图片转jpg,已封装为exe,内含jre,可直接运行
【Android】获取所有jpg和png图片
import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.content.ContentResolver; import android.database.Cursor; import android.net.Uri; import android
用OpenCV合成PNG和JPG图片
最近产品有了一个天才的想法,做一个影集类似的功能,前面用图片制作影像、合成音频的操作都还挺顺利,但是到了给视频添加特效的时候就遇到了困难。 以前使用Pr或绘声绘影的时候就在想,这些软件背后的代码是什么样的呢?看来这一次我自己也可以亲手体验一番了。 这次主要遇到了两个问题: 在图片间插入过场动画 (这一篇将不会讲到这个) 在视频开头添加一个半透明的几何图案 图片合成 Google了一大票答案...
EMF图片转为JPG/PNG
EMF图片转为JPG/PNG 需安装GraphicsMagick 提供实例代码
echarts导出图片(.png和.jpg)
const exportCharts = (fileName) => { if (document.getElementById('chartsShow')) { let chartsCanvas = document.getElementById('chartsShow').querySelectorAll('canvas')[0] let mime = 'image/...
如何打开JPG、PNG图片?
如题,求解。最好附上代码,谢谢
图片JPG,GIF,PNG格式
1.JPG:支持颜色多,图片可压缩,不支持透明(通常用来保存照片等颜色丰富的图片) 2.GIF:支持颜色少,支持简单透明,支持动态图(通常用在颜色单一或者要求动态图的图片上) 3.PNG:支持颜色多,支持复杂透明(一般用来显示颜色复杂且要求透明的图片) ...
JPG/PNG图片转PDF
进行各种图片的转化成PDF式样!可以使用的
MFC读jpg和png图片
各位大虾好:rn 在MFC下面如何读取JPG和PNG的图片,BMP不用说咯。rn 大家是否用了第三方的库,还是自己写。但是jpg不好写的啊,不像bmp那样。rn 如果用的是库,有什么好的库推荐的么?opencv不要说,thank you!rn
哈哈,我也申请成功了,庆祝一下
如题
android png和jpg的区别及使用场景
大家都知道同样的尺寸,png格式的图片要比jpg图片大很多,为什么android开发对png情有独钟呢? 二者对比: 1、png有透明通道,而jpg没有 2、png是无损压缩的,而jpg是有损压缩,因此png中存储的信息会很多,体积自然就大了 3、手机对png情有独钟,会对其进行硬件加速,所以同样一张背景图,png虽然体积大,但是加载速度更快综述:1、对于app包中的图片,我们都使用p
JPG等图片转PNG图片
这个工具可以把JPG等图片转换成PNG图片,并保存到原路径下。R/G/B三个通道可以调节大小,超级好用哦!
Android图片的内存溢出问题
最近有学妹问我android图片很多内存溢出的问题,后来我仔细看了一下android studio和eclipse放图片的位置确实有所不同。那么今天就来说说android studio里面的图片应该放在哪里,并谈谈放在android studio的drawable下的原生图片为什么就内存溢出了。
android 图片内存溢出
 rn**在界面显示多个图片的时候(10多张图片,每张500Kb左右),就会出现内存溢出的日志,但是应用不会崩溃,只会导致图片不显示,只显示占位图或者加重错误的图片。rn这种情况只在一种设备上出现(厂家定制的设备),在其他手机上不会出现,在模拟器上(运存调到800MB)也不会出现。有没有懂得老司机帮忙分析一下。**rn  rn  rn![图片说明](https://img-ask.csdn.net/upload/201708/09/1502245325_117080.png)rn上图是出现的异常日志rn  rn![图片说明](https://img-ask.csdn.net/upload/201708/09/1502245445_493950.png)rn上图是运行时内存使用情况rn  rn![图片说明](https://img-ask.csdn.net/upload/201708/09/1502245643_960348.png)rn上图是查看build.prop文件的内存rn  rn
android大图片转bitmap时造成内存溢出的一种解决方案
在将大图片转成bitmap时造成的内存溢出问题显然无法通过recycle(),软引用等方式来解决(才一个bitmap就溢出了) 比较简单的折中方案就是采用BitmapFactory的内部类 Options来对图片进行压缩 查阅源码javadoc Options类的公共属性inJustDecodeBounds的注释如下 /** * If se...
Android png图片命名规范
才知道,原来Android  png命名准备的规范是这样: 小写字母,数字,下划线组成;必须是字母开头,而且每个下划线后面第一个字符必须是字母。 正确命名:   sider_menu_btn_1;     sider_menu_btn1;         错误命名:   sider_menu_1btn;     sider_menu_b1tn;    sider_menu-btn;
android美化图片PNG
安卓图片图标,所有基本功能图片都有.开发安卓的工作人员有福拉,如果喜欢,请给点意见或者评论,谢谢
android批量处理png图片
现在需要对上百张png图片进行处理,原始图片的背景透明层太大,我的需求是把每张图片的透明背景裁剪得刚刚好,我现在遇到的问题是java好像没有对alpha值进行处理,来判断需要将原始图片周围透明度为0的长度裁剪掉,[img=https://img-bbs.csdn.net/upload/201412/18/1418875488_994356.png][/img]rn就像图片显示,如何把周围空白处处理掉,刚好包围到沙发就最好了,求指教啊啊啊
Android 内存溢出和内存泄漏的区别以及造成的原因
一、原理 内存溢出(Out of memory): 内存泄漏(Memory leak): 二
Android下会造成内存溢出的情况以及解决方法
在Android中,一个很小的错误就会内存泄露,随着内存泄露的堆积,就会容易造成手机的卡顿. 常见的内存泄露: 1.使用Adapter时,没有复用convertview 2.使用非静态内部类 3.单例模式时需要context参数时,使用Activity的引用 4.注册对象时,没有进行反注册 5.使用资源对象时,没有关闭 6.使用Bitmap后没有用recycle释放 7.集合中
BufferedImage 造成内存溢出
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);rn Graphics2D g2 = image.createGraphics();rn g2.fillRect(0, 0, image.getWidth(), image.getHeight());rn if(carvingType==1)rnrn DefaultSealFrame frame = new DefaultSealFrame(left, top, frameWidth * AbstractSeal.mm, frameHeightrn * AbstractSeal.mm, frameLineWidth * AbstractSeal.mm, frameType);rn SealChipNest chipNest=new SealChipNest(14*AbstractSeal.mm, frame);rn chipNest.draw(g2);rn rn else if (isPrintable()) rn seal.setPrintable(true);rn seal.draw(g2);rn // 镜像rn final AffineTransform hFlip = new AffineTransform(-1.0, 0, 0, 1.0, width, 0);rn g2.drawImage(image, hFlip, null);rn else rn seal.draw(g2);rn rn // AbstractSeal abstractSeal=(AbstractSeal) seal;rn // abstractSeal.saveDraw();rn g2.dispose();rn ImageIO.write(image, "jpeg", response.getOutputStream());rn response.getOutputStream().flush();rn 一次性显示很多图片的,在BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); 这行报内存溢出了rn rn
将JPG,BMP,PNG图片插入到ACCESS数据库
将JPG,BMP,PNG图片插入到ACCESS数据库,Embarcadero RAD Studio XE6编译通过。 C/C++ code ? 1 2 #include  #include  C/C++ code ? 1 2 3
Linux命令压缩/优化JPG/PNG图片
# yum install jpegoptim for i in /data/site/image.ttlsa.com/images/*.jpg; do jpegoptim $i; done http://www.ttlsa.com/linux/optimizing-jpg-png-images-on-linux/
FFmpeg解码,并转码JPG,png图片
用ffmpeg库,对JPG,png图片解码,并转化为YUV420格式
png图片批量转换jpg格式工具
一款迅猛、实在的、非在线的 png图片格式批量转换jpg图片格式工具 老外写的,值得分享。有需要的拿去,不谢!
JPG、GIF、PNG和BMP格式的图片
  图片格式区别 格式 优点 缺点 JPG 文件小,利于网络传输 画质损失 PNG 可保存透明背景的图片 画质中等 GIF 动画存储格式 最多256色,画质差 BMP 无损压缩,图质最好 文件太大,不利于网络传输 BMP BMP(全称Bitmap)是Windows操作系统中的标准图像文件格式,可以分成两类:设备相...
SetDIBitsToDevice和stretchBlt 函数显示JPG PNG图片
MSDN代码rn//rn// pvJpgImage points to a buffer containing the JPEG imagern// nJpgImageSize is the size of the bufferrn// ulJpgWidth is the width of the JPEG imagern// ulJpgHeight is the height of the JPEG imagern//rnrn//rn// Check if CHECKJPEGFORMAT is supported (device has JPEG support)rn// and use it to verify that device can handle the JPEG image.rn//rnrnul = CHECKJPEGFORMAT;rnrnif (rn // Check if CHECKJPEGFORMAT exists:rnrn (ExtEscape(hdc, QUERYESCSUPPORT,rn sizeof(ul), &ul, 0, 0) > 0) &&rnrn // Check if CHECKJPEGFORMAT executed without error:rnrn (ExtEscape(hdc, CHECKJPEGFORMAT,rn pvJpgImage, nJpgImageSize, sizeof(ul), &ul) > 0) &&rnrn // Check status code returned by CHECKJPEGFORMAT:rnrn (ul == 1)rn )rnrn //rn // Initialize the BITMAPINFO.rn //rnrn memset(&bmi, 0, sizeof(bmi));rn bmi.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);rn bmi.bmiHeader.biWidth = ulJpgWidth;rn bmi.bmiHeader.biHeight = -ulJpgHeight; // top-down imagern bmi.bmiHeader.biPlanes = 1;rn bmi.bmiHeader.biBitCount = 0;rn bmi.bmiHeader.biCompression = BI_JPEG;rn bmi.bmiHeader.biSizeImage = nJpgImageSize;rnrn //rn // Do the SetDIBitsToDevice.rn //rnrn iRet = SetDIBitsToDevice(hdc,rn ulDstX, ulDstY,rn ulDstWidth, ulDstHeight,rn 0, 0,rn 0, ulJpgHeight,rn pvJpgImage,rn &bmi,rn DIB_RGB_COLORS);rnrn if (iRet == GDI_ERROR)rn return FALSE;rnrnelsernrn //rn // Decompress image into a DIB and call SetDIBitsToDevice rn // with the DIB instead.rn //rnrnrn这里的 ulJpgHeight ulJpgWidth pvJpgImage nJpgImageSize 初值从哪里来 ul又是个什么类型rn那位大哥能不能给详细解释一下rn最好能给个完整的代码
使用tkinter加载png、jpg等图片
首先PhotoImage注意这里只支持gif格式的图片 photo = PhotoImage(file="D:/python/images/02.gif") 发现tkinter是只支持gif的格式,如果要加载png或者jpg的话就要使用PIL模块 from Tkinter import * from PIL import Image, ImageTk root = Tk() root.titl...
jpg/png格式图片转eps格式
一、Photoshop 使用Photoshop软件,将jpg或者png图片另存为eps格式。 二、latex自带命令bmeps 图片存放路径:C:\Users\Administrator\Desktop\LeTax\figure 路径下图片命名:1.jpg 打开cmd,输入 bmeps -h 将jpg格式图片转成eps bmeps -c 1.jpg 1.eps 存放图...
JPG、PNG和GIF图片的基本原理及优化方法
JPG、PNG和GIF图片的基本原理及优化方法 一提到图片,我们就不得不从位图开始说起,位图图像(bitmap),也称为点阵图像或绘制图像,是由称作像素(图片元素)的单个点组成的。这些点可以进行不同的排列和染色以构成一副图片。当放大位图时,可以看见赖以构成整个图像的无数单个方块。 我们常见的图片格式中JPG、PNG、GIF亦属于位图,所以它们的数据结构大致相同,只是每一种...
正则表达式筛选出jpg、png的图片url
private static void reg() { // TODO Auto-generated method stub String line = "[\"http://yjj-img-main.oss-cn-hangzhou.aliyuncs.com/1440227044447Capture One Session5324.jpg\"," + "\"http://y
Qt之生成png/jpg/bmp格式图片
一、问题描述:有时候需要把Qt绘制的一些图形保存为png/jpg/bmp格式的图片,下面就根据自己写的一个简单的测试程序来讲解一下Qt中保存图片的方法。本文主要讲解使用Qpainter和QImage组合使用保存图片的方法。二、显示效果:1、界面显示效果: 2、生成的图片及图片显示效果: 三、核心代码示例:#include "widget.h" #include "ui_widget.h" #in
IE浏览器无法显示jpg或png图片
IE浏览器无法显示jpg或png图片IE浏览器有个问题,就是如果修改了图片原始的扩展名,将导致图片无法正常显示,例如,你用截图工具截了一张图,图片格式为png如果把它修改为jpg,并试图将其显示<img src="1.jpg">IE浏览器不能正常显示,但火狐,谷歌可以正常显示。...
jpg/png格式的图片转换成eps格式
LaTeX与word相比,排版很漂亮,但在用LaTeX写论文时经常遇到将jpg/png的图片保存成eps格式的情况,因为这样插入到论文里面图片会很清晰。 方法有很多,下面介绍三种,基本就够用了。 方法一: 很简单,直接在软件中另存为eps格式,但是有的软件不支持。 方法二: 使用LaTeX里面自带的bmeps功能。 首先,打开WinEdt编辑器,打开command prompt。 界面如下:(要...
png、jpg、tga图片转Texture2D
c#语言,unity,支持将png、jpg、tga格式图片转Texture2D
相关热词 c#检测非法字符 c#双屏截图 c#中怎么关闭线程 c# 显示服务器上的图片 api嵌入窗口 c# c# 控制网页 c# encrypt c#微信网页版登录 c# login 居中 c# 考试软件