zoukankan      html  css  js  c++  java
  • bmp格式转为jpeg格式文件

    bmp格式转为jpeg格式文件

    BMP是英文Bitmap(位图)的简写,它是Windows操作系统中的标准图像文件格式,能够被多种Windows应用程序所支持。随着Windows操作系统的流行与丰富的Windows应用程序的开发,BMP位图格式理所当然地被广泛应用。这种格式的特点是包含的图像信息较丰富,几乎不进行压缩,但由此导致了它与生俱生来的缺点--占用磁盘空间过大。所以,目前BMP在单机上比较流行。

    在BMP文件中,如果一个数据需要用几个字节来表示的话,那么该数据的存放字节顺序为“低地址村存放低位数据,高地址存放高位数据

    42 4d = BM 表示这是Windows支持的位图格式,开头两个字节必须为'BM'才是Windows位图文件



    和文件大小一致
    6-9 :这是两个保留段,为0。
    A-D:00000436h = 1078。即从文件头到位图数据需偏移1078字节

    0E-11:00000028h = 40,这就是说我这个位图信息头的大小为40个字节。
    12-15:00000100h = 256,图像宽为255像素,与文件属性一致。
    16-19:00000100h = 256,图像高为255像素,与文件属性一致。这是一个正数,说明图像数据是从图像左下角到右上角排列的。
    1A-1B:0001h, 该值总为1。
    1C-1D:0008h = 8, 表示每个像素占8个比特,即该图像共有256种颜色。
    1E-21:00000000h,BI_RGB, 说明本图像不压缩。
    22-25:00000000h,图像的大小,因为使用BI_RGB,所以设置为0。
    26-29:00000000h,水平分辨率,缺省。
    2A-2D:00000000h,垂直分辨率,缺省。
    2E-31:00000100h = 256,说明本位图实际使用的颜色索引数为256,与1C-ID得到的结论一致。
    32-35:00000100h = 256,说明本位图重要的颜色索引数为256,与前面得到的结论一致。
    调色板其实是一张映射表,标识颜色索引号与其代表的颜色的对应关系
    由于位图信息头中的图像高度是正数,所以位图数据在文件中的排列顺序是从左下角到右上角,以行为主序排列的

    # coding:utf-8
    import os
    from PIL import Image
    
    # bmp 转换为jpg,灰度图转RGB
    def bmpToJpg_grayToRGB(file_path):
       for fileName in os.listdir(file_path):
           print(fileName)
           newFileName = fileName[0:fileName.find(".bmp")]+".jpg"
           print(newFileName)
           im = Image.open(file_path+"\"+fileName)
           rgb = im.convert('RGB')      #灰度转RGB
           rgb.save(file_path+"\"+newFileName)
    
    # 删除原来的位图
    def deleteImages(file_path, imageFormat):
       command = "del "+file_path+"\*."+imageFormat
       os.system(command)
    
    def main():
       file_path = "G:\study\material\images"
       bmpToJpg_grayToRGB(file_path)
       # deleteImages(file_path, "bmp")
    
    if __name__ == '__main__':
       main()
    

    其实这是信息论相关的内容,但是这个没有涉及到信息论相关知识。。。晕

  • 相关阅读:
    6.1(续)索引、索引组织表--Oracle模式对象
    Docker容器中用户权限管理
    setfacl、getfacl
    Premiere常见配置优化
    SSH代理
    给U盘分区
    IO模型
    window 系统各个版本 ie浏览器 默认版本 bootstrap ie版本兼容
    代码多版本处理及自动化打包部署流程
    vue3 watch 监听数组 对象
  • 原文地址:https://www.cnblogs.com/serendipity-my/p/13804708.html
Copyright © 2011-2022 走看看