图片位深的获取
来源:互联网 发布:英雄无敌3mac版 编辑:程序博客网 时间:2024/05/29 11:59
大概思路:图像的位深度,就存储在文件的byte数组里,找到位置,就能获取到。
//获取bmp图片位深
int getBmpBitDepth(constQString&imagePath){QFile imageFile(imagePath);if(!imageFile.open(QIODevice::ReadWrite)){return -1;}QByteArray ba =imageFile.readAll();int bitsPerPixel =(ba[28]& 0xff)| (ba[29]& 0xff)<< 8;printf("Bmpdepth=%d\n",bitsPerPixel);imageFile.close();return bitsPerPixel;}//获取png图片位深int getPngBitDepth(constQString&imagePath){QFile imageFile(imagePath);if(!imageFile.open(QIODevice::ReadWrite)){return -1;}QByteArray ba =imageFile.readAll();int bitsPerPixel =ba[24]& 0xff;if((ba[25]& 0xff)== 2){bitsPerPixel*= 3;}else if((ba[25]& 0xff)== 6){bitsPerPixel*= 4;}printf("Pngdepth=%d\n",bitsPerPixel);imageFile.close();return bitsPerPixel;}//获取Jpeg图片位深int getJpegBitDepth(constQString&imagePath){QFile imageFile(imagePath);if(!imageFile.open(QIODevice::ReadWrite)){return -1;}QByteArray ba =imageFile.readAll();int i =2;int bitsPerPixel=0;while(true){int marker =(ba[i] &0xff)<< 8| (ba[i+ 1]& 0xff);int size =(ba[i +2]& 0xff)<< 8| (ba[i+ 3]& 0xff);if(marker >=0xffc0&& marker<= 0xffcf&& marker!= 0xffc4&&marker !=0xffc8){bitsPerPixel= (ba[i+ 4]& 0xff)* (ba[i+ 9]& 0xff);break;}else{i+= size+ 2;}}printf("Jpegdepth=%d\n",bitsPerPixel);imageFile.close();return bitsPerPixel;}//获取gif位深gif:获取到是第一张图片的位深度,对于那种多张图片组成的动态图的位深度,应该是所有图片中位深度最高的那个才是最终的值。 int bitsPerPixel=(bytes[10] & 0x07) + 1; int main(){QString path_0("D:\\workspace\\aaa.bmp");int bmpDepth =getBmpBitDepth(path_0);QString path_1("D:\\workspace\\tray.png");int pngDepth =getPngBitDepth(path_1);QString path_2("D:\\workspace\\1111.jpg");int jpegDepth =getJpegBitDepth(path_2);}
阅读全文
0 0
- 图片位深的获取
- 获取图片的位深度
- 图片位深&位图
- 获取整型的每一位
- 24位深的bmp图片转换为16位深RGB565格式的bmp图片源码
- 获取图片的格式
- 手机图片的获取
- 获取图片的采样率
- 获取图片的缩略图
- 获取图片的格式
- 图片的本地获取
- 获取view的图片
- 获取屏幕分辨率及位深
- [Cocoa]_[初级]_[获取图片文件的属性值:如图片大小、位深度、宽高、最后修改日期]
- VC 获取计算机是32位还是64位的
- 位操作,获取和设置特定位的值,效率
- 通过位运算获取某个整形数据的某些位
- java,取得图片的位深度
- Invalid Toolchain
- php+stomp+activemq,实现producer
- 51nod 1565 模糊搜索
- install redis-server on centos7
- python3 requests简介
- 图片位深的获取
- 25张图让你读懂神经网络架构
- Linux下启动Java程序的启动脚本编写
- ZAB 和paxos 简介
- java继承中的方法覆盖问题
- 第一课,进阶高手的大门
- npm ERR! Windows_NT 6.1.7601
- centos 安装 redis3.0.0 集群
- 2017.6.21 大都市meg 思考记录