本帖最后由 x100024652 于 2020-6-29 00:13 编辑
图片_取像素RGB()
命令源码第4行 BMP起始位置 = BMP图片 [3] 数组越界原因
BMP图片 第3至5位 是存放文件大小信息 ,第11位才是文件头长度。
修改后,取RGB 色值错误。原因应该是BMP 4位对齐的原因所致。
于是再次修改了一下源码,附下;
|
图片_取点RGB | 字节集 | | |
BMP图片 | 字节集 | | | | 图片X | 整数型 | | | | 图片Y | 整数型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | 图片宽度 | 整数型 | | | 图片高度 | 整数型 | | | 起始位置 | 整数型 | | | 占用字节 | 整数型 | | | RGB | 字节集 | | | 如果真 (BMP图片 [3 ] < 58 或 BMP图片 [29 ] ≠ 24 ) 返回 ({ -1, -1, -1 })图片宽度 = BMP图片 [19] + BMP图片 [20] × 256图片高度 = BMP图片 [23 ] + BMP图片 [24 ] × 256 占用字节 = 取整 ( (图片宽度 × 24 + 31 ) ÷ 32 ) × 4 如果真 (图片X < 0 或 图片X ≥ 图片宽度 )返回 ({ -1, -1, -1 })如果真 (图片Y < 0 或 图片Y ≥ 图片高度 )返回 ({ -1, -1, -1 })起始位置 = 55 (图片高度 - 图片Y - 1) × 占用字节 + 图片X × 3RGB = 取空白字节集 (3 )RGB [1 ] = BMP图片 [起始位置 + 2 ]RGB [2 ] = BMP图片 [起始位置 + 1 ]RGB [3 ] = BMP图片 [起始位置 ]返回 (RGB )
(起始位置 = 55加号) 成了???号
|