图像处理基本方法-python语言生成纯色BMP文件
之前使用过c、java、go语言实现过生成纯色BMP图片的功能。
现在由python语言完成该功能。其他的一些背景和环境就不在赘述,主要还是在ubuntu下使用python语言环境完成。
1、python语言简介
Python由荷兰数学和计算机科学研究学会的Guido van Rossum 于1990 年代初设计,作为一门叫做ABC语言的替代品。 Python提供了高效的高级数据结构,还能简单有效地面向对象编程。Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言,随着版本的不断更新和语言新功能的添加,逐渐被用于独立的、大型项目的开发。
Python解释器易于扩展,可以使用C或C++(或者其他可以通过C调用的语言)扩展新的功能和数据类型。
Python 也可用于可定制化软件中的扩展程序语言。Python丰富的标准库,提供了适用于各个主要系统平台的源码或机器码。
2、代码实现
#/*******************************************************
# * file:testbmp.py
# * date:2021-05-09
# * version:1.0.0.1
# * author:jack8126
# * description: create bmp file
# *******************************************************/
import struct
width = 1920;
height = 1080;
bit = 3;
Red = 255;
Green = 255;
Blue = 0;
bfType = 'BM'
bfSize = (width*height*bit + 54);
bfReserved1 = 0;
bfReserved2 = 0;
bfOffBits = 54;
biSize = 40
biWidth = width;
biHeight = height;
biPlanes = 1;
biBitCount = bit * 8;
biCompression = 0
biSizeImage = 0;
biXPelsPerMeter = 3780;
biYPelsPerMeter = 3780;
biClrUsed = 0;
biClrImportant = 0;
bmpDataSize = bfSize - 54;
# open file
file = open("test-python.bmp", 'wb+')
# reconstruct File Header
file.write(bfType)
# i = 4 bytes
# h = 2 bytes
# B = 1 bytes
file.write(struct.pack('i',bfSize))
file.write(struct.pack('h',bfReserved1))
file.write(struct.pack('h',bfReserved2))
file.write(struct.pack('i',bfOffBits))
# reconstruct bmp header
file.write(struct.pack('i',biSize))
file.write(struct.pack('i',biWidth))
file.write(struct.pack('i',biHeight))
file.write(struct.pack('h',biPlanes))
file.write(struct.pack('h',biBitCount))
file.write(struct.pack('i',biCompression))
file.write(struct.pack('i',biSizeImage))
file.write(struct.pack('i',biXPelsPerMeter))
file.write(struct.pack('i',biYPelsPerMeter))
file.write(struct.pack('i',biClrUsed))
file.write(struct.pack('i',biClrImportant))
# reconstruct pixels
for x in range(0, height):
for y in range(0, width):
file.write(struct.pack('B',Blue))
file.write(struct.pack('B',Green))
file.write(struct.pack('B',Red))
# close file
file.close()
3、执行程序
python testbmp.py
要想修改纯色bmp图片的分辨率和颜色值,修改代码中的参数即可:
width = 1920;
height = 1080;
bit = 3;
Red = 255;
Green = 255;
Blue = 0;
4、参考资料
https://blog.csdn.net/jackyzhousales/article/details/78030847
https://blog.csdn.net/jack8126/article/details/116331956
https://blog.csdn.net/jack8126/article/details/116466075
https://blog.csdn.net/jack8126/article/details/116505438