diff --git a/imgs/single.bmp b/imgs/1/1x3.bmp similarity index 100% rename from imgs/single.bmp rename to imgs/1/1x3.bmp diff --git a/imgs/1/2x1.bmp b/imgs/1/2x1.bmp new file mode 100644 index 0000000..a76cdbc Binary files /dev/null and b/imgs/1/2x1.bmp differ diff --git a/imgs/1/2x3.bmp b/imgs/1/2x3.bmp new file mode 100644 index 0000000..71fa073 Binary files /dev/null and b/imgs/1/2x3.bmp differ diff --git a/imgs/bw.bmp b/imgs/bw2x3.bmp similarity index 100% rename from imgs/bw.bmp rename to imgs/bw2x3.bmp diff --git a/imgs/24.bmp b/imgs/rgb1x3.bmp similarity index 100% rename from imgs/24.bmp rename to imgs/rgb1x3.bmp diff --git a/main.py b/main.py index fe5ec04..0a3c89c 100644 --- a/main.py +++ b/main.py @@ -8,10 +8,10 @@ new_height = int(input("请输入新高度(px):")) print("模式 0 直接缩放") print("模式 1 高斯模糊缩放") mode = int(input("请输入模式:")) -# img = 'imgs/bw.bmp' +# img = 'imgs/1/2x3.bmp' # new_width = 512 # new_height = 512 -# mode = 1 +# mode = 0 if (mode != 1): mode = 0 @@ -41,7 +41,7 @@ def sizeByte(size, length): return b[::-1] -# 文件头处理 +# 位图文件头 # 检验文件头是否为 BM if (imgBytes[0] != 66 or imgBytes[1] != 77): print("当前文件非 BMP 格式") @@ -51,14 +51,18 @@ fileSize = byteSize(2, 4) #文件头中的文件大小 dataStart = byteSize(10, 4) #文件头中的数据开始字节 # bmp 文件头 -headerSize = byteSize(14, 4) -width = byteSize(18, 4) -height = byteSize(22, 4) -nbplan = byteSize(26, 2) -bpp = byteSize(28, 2) -compression = byteSize(30, 4) -imageSize = byteSize(34, 4) -# 调色板不做处理 +headerSize = byteSize(14, 4) #该头结构的大小(40字节) +width = byteSize(18, 4) #位图宽度,单位为像素(有符号整数) +height = byteSize(22, 4) #位图高度,单位为像素(有符号整数) +nbplan = byteSize(26, 2) #色彩平面数;只有1为有效值 +bpp = byteSize(28, 2) #每个像素所占位数,即图像的色深。典型值为1、4、8、16、24和32 +compression = byteSize(30, 4) #所使用的压缩方法,可取值见下表。 +imageSize = byteSize(34, 4) #图像大小。指原始位图数据的大小(详见后文),与文件大小不是同一个概念。 +wppm = byteSize(38, 4) #图像的横向分辨率,单位为像素每米(有符号整数) +hppm = byteSize(42, 4) #图像的纵向分辨率,单位为像素每米(有符号整数) +colorsNum = byteSize(46, 4) #调色板的颜色数,为0时表示颜色数为默认的2^色深个 +icolorsNum = byteSize(50, 4) #重要颜色数,为0时表示所有颜色都是重要的;通常不使用本项 +colorsBoard = imgBytes[54:dataStart] #调色板 # 变量预处理 pixels = []