Android储存BMP格式图片
BMP格式可参考这片文章:点击跳转
上代码
public static byte[] convertBitmap2Bmp(Bitmap bitmap) {if (bitmap == null) {return null;}int w = bitmap.getWidth();int h = bitmap.getHeight();int wWidth = w * 3 + w % 4;int bmpDateSize = h * wWidth;int size = 14 + 40 + bmpDateSize;byte buffer[] = new byte[size];// 1.BMP文件头 14buffer[0] = 0x42; //bfType 2bytesbuffer[1] = 0x4D;buffer[2] = (byte) ((size >> 0) & 0xFF); //bfSize 4bytesbuffer[3] = (byte) ((size >> 8) & 0xFF);buffer[4] = (byte) ((size >> 16) & 0xFF);buffer[5] = (byte) ((size >> 24) & 0xFF);buffer[6] = 0x00; //bfReserved1 2bytesbuffer[7] = 0x00;buffer[8] = 0x00; //bfReserved2 2bytesbuffer[9] = 0x00;buffer[10] = 0x36; //bfOffBits 14+40 4bytesbuffer[11] = 0x00;buffer[12] = 0x00;buffer[13] = 0x00;// 2.BMP信息头 40buffer[14] = 0x28; //biSize 40 4bytesbuffer[15] = 0x00;buffer[16] = 0x00;buffer[17] = 0x00;buffer[18] = (byte) ((w >> 0) & 0xFF); //biWidth 4bytesbuffer[19] = (byte) ((w >> 8) & 0xFF);buffer[20] = (byte) ((w >> 16) & 0xFF);buffer[21] = (byte) ((w >> 24) & 0xFF);buffer[22] = (byte) ((h >> 0) & 0xFF); //biHeight 4bytesbuffer[23] = (byte) ((h >> 8) & 0xFF);buffer[24] = (byte) ((h >> 16) & 0xFF);buffer[25] = (byte) ((h >> 24) & 0xFF);buffer[26] = 0x01; //biPlanes 2bytesbuffer[27] = 0x00;buffer[28] = 0x18; //biBitCount 24位位图 2bytes buffer[29] = 0x00;buffer[30] = 0x00; //biCompression 4bytesbuffer[31] = 0x00;buffer[32] = 0x00;buffer[33] = 0x00;buffer[34] = 0x00; //biSizeImage 4bytesbuffer[35] = 0x00;buffer[36] = 0x00;buffer[37] = 0x00;buffer[38] = 0x00; //biXpelsPerMeter 4bytesbuffer[39] = 0x00;buffer[40] = 0x00;buffer[41] = 0x00;buffer[42] = 0x00; //biYPelsPerMeter 4bytesbuffer[43] = 0x00;buffer[44] = 0x00;buffer[45] = 0x00;buffer[46] = 0x00; //biClrUsed 4bytesbuffer[47] = 0x00;buffer[48] = 0x00;buffer[49] = 0x00;buffer[50] = 0x00; //biClrImportant 4bytesbuffer[51] = 0x00;buffer[52] = 0x00;buffer[53] = 0x00;byte bmpData[] = new byte[bmpDateSize];for (int nCol = 0, nRealCol = h - 1; nCol < h; ++nCol, --nRealCol) {for (int wRow = 0, wByteIdex = 0; wRow < w; wRow++, wByteIdex += 3) {int clr = bitmap.getPixel(wRow, nCol);//clr = clr == 0 ? 0xFFFFFF : clr; //黑色背景转为白色bmpData[nRealCol * wWidth + wByteIdex] = (byte) Color.blue(clr);bmpData[nRealCol * wWidth + wByteIdex + 1] = (byte) Color.green(clr);bmpData[nRealCol * wWidth + wByteIdex + 2] = (byte) Color.red(clr);}}System.arraycopy(bmpData, 0, buffer, 54, bmpDateSize);// 输出到sdcard查看try {FileOutputStream fos = new FileOutputStream(new File("/sdcard/test.bmp"));fos.write(buffer);fos.close();} catch(Exception e) {e.printStackTrace();}return buffer;}
Android储存BMP格式图片相关推荐
- android 将bitmap存为 bmp格式图片大小,把bitmap保存成 BMP的格式 并且位深度为1
生成图片的要求:图像格式采用单色位图文件格式(BMP) 要求bmp的位深度为1 参考: 代码有点小瑕疵 : bitmap的图片宽度要求是:8的整数倍 /** * 将Bitmap存为 .bmp格式图片 ...
- C语言读取BMP格式图片
C语言读取BMP格式图片 BMP 维基百科,自由的百科全书 汉漢▼ 位图 扩展名 .bmp 开发者 Microsoft 格式 图像文件格式 本文介绍的是一种图像文件格式. 关于Unicode的第1区 ...
- 【数字图像处理】一.MFC详解显示BMP格式图片
本文主要是讲述<数字图像处理>系列栏目中的第一篇文章.主要详细介绍了BMP图片格式,同时使用C++和MFC显示BMP格式,主要结合自己的<数字图像处理>课程和以前的项目叙述讲解 ...
- bmp文件格式_一次性解决CAD转换成BMP格式图片的问题
关于BMP格式图片,可能很多小伙伴都遇到得比较多,但在这里还是稍微解释一下吧. 它是Windows操作系统中的标准图像文件格式,大家都知道BMP格式的图片都非常大,那是因为它没有经过任何压缩. 当然, ...
- C语言读取和存储bmp格式图片
开发过程中有时候需要解析bmp数据,下面先简单介绍bmp数据组成,后面附上C语言读取和存储bmp格式图片代码. 典型的位图文件格式通常包含下面几个数据块: BMP文件头:保存位图文件的总体信息. 位图 ...
- MFC详解显示BMP格式图片
本文主要是讲述<数字图像处理>系列栏目中的第一篇文章.主要详细介绍了BMP图片格式,同时使用C++和MFC显示BMP格式,主要结合自己的<数字图像处理>课程和以前的项目叙述讲解 ...
- 将BMP 格式图片转换为 JPEG 格式【c语言】
源码链接: https://blog.csdn.net/qq_44394952/article/details/122587475?spm=1001.2014.3001.5502. 一.任务及目标 利 ...
- 关于BMP格式图片在终端显示的具体做法(超详细)
关于BMP格式图片在终端显示的具体做法(超详细) #include <stdio.h> #include <sys/mman.h> #include <sys/types ...
- 如何批量将 bmp 格式图片转换转换为 jpg
概要:png 和 jpg 这两种格式的图片相信大家都非常熟悉,但是 bmp 格式的图片可能大家接触得并没有那么多,bmp 是 Windows 操作系统中的标准图像文件格式,能够被多种 Windows ...
最新文章
- 用Scikit-learn和TensorFlow进行机器学习_1
- Alibaba Cluster Data 开源:270GB 数据揭秘你不知道的阿里巴巴数据中心
- 数仓备机DN重建:快速修复你的数仓DN单点故障
- linux输出和错误信息文件,Log4j配置将错误信息输出到指定文件中[linux tomcat]
- Windows登录密码破解
- 2019秋 哈工大《概率论与数理统计》试题A及答案
- 学习python的字符串组合
- ASO优化选词:三种方法教你精准定位关键词
- 苹果cms模板_万词无限模板站群黑帽SEO利器
- android 柱状图绘制,安卓MPAndroidChart绘制柱状图
- Qt PDF编辑器笔记
- 2018清华计算机考研经历,2018清华计算机考研经验分享
- C++入门——神奇的引用
- Typora结束无序列表
- 016_jie_chu_b_zhan_qu_yu_xian_zhi
- HTML如何在图片上添加内容(如文字,菜单栏,按钮等)
- 当过服务员、快递员,现在年薪30W,历尽山河叛逆少年终会成长
- 5款冷门小工具,让你的电脑变得与众不同
- 在甲方做安全的第五个月
- Task03:复杂查询方法-视图、子查询、函数等
热门文章
- Windows服务没有及时响应启动或控制请求
- 报错:axis2.AxisFault: Transport error: 401 Error: Unauthorized
- 70行代码撸一个桌面自动翻译神器(采用Markdown格式编写)
- ubuntu系统使用docker gitlab 磁盘空间满问题解决记录
- 微信小程序:获取用户手机号码的过程
- 2021年java重点面试题
- 网页js实现的各种3D树形结构模型
- fullcalendar实现拖拽方案到日历中--js
- Spark 生成 janusgraph adjacent list
- 各种监控系统原理说的头头是道,不懂这些选型指标都是纸上谈兵