d6aeede2bc
从桌面工程复制而来,作为本仓库的 Xuxucheck/ 子目录。 为控制仓库体积做了两处删减: - 移除 Frameworks/opencv2.xcframework 下的两个 visionOS 切片 (xros-arm64、xros-arm64-simulator,合计约 106 MB),并同步删掉该 xcframework 内 Info.plist 里对应的两条 AvailableLibraries 记录, 只保留 ios-arm64 与 ios-arm64_x86_64-simulator。 - 移除全部 .DS_Store 与 xcuserdata/。 已用 xcodebuild 从本目录完整编译验证:BUILD SUCCEEDED, ProcessXCFramework 以 --platform ios 成功选中框架,产物含 3699 个 cv:: 符号 (OpenCV 确实链入),嵌入 framework 3 个,与移除无用 pod 之后的状态一致。 仓库约 206 MB,其中 OpenCV 203 MB、其余源码与依赖约 3 MB。
55 lines
1.7 KiB
Python
55 lines
1.7 KiB
Python
#!/usr/bin/env python3
|
|
"""读取截屏像素,定位颜色分界点。
|
|
|
|
用途:判断某块区域(顶部留白、底部白带、状态栏……)到底是什么颜色、有多高。
|
|
不要靠眼睛估计截图,直接读像素。
|
|
|
|
用法:
|
|
sips -s format bmp /tmp/shot.jpg --out /tmp/shot.bmp
|
|
python3 docs/tools/px.py /tmp/shot.bmp [x]
|
|
|
|
x 默认 10 —— 最左边一列通常只经过背景、不经过文字,跳变点最干净。
|
|
点(pt)= 像素 / 3,iPhone 16 Pro 是 3x;数值请以实际机型的 scale 为准。
|
|
|
|
为什么不用 swift:本机 `swift foo.swift` 会报
|
|
could not build module '_DarwinFoundation1',所以走 sips + 纯标准库这条路。
|
|
sips 输出的是 24bpp、自下而上(height 为负)的 BMP,下面按这个解析。
|
|
"""
|
|
|
|
import struct
|
|
import sys
|
|
|
|
path = sys.argv[1]
|
|
x = int(sys.argv[2]) if len(sys.argv) > 2 else 10
|
|
|
|
data = open(path, 'rb').read()
|
|
if data[:2] != b'BM':
|
|
sys.exit('not a BMP — 先用 sips 转一下')
|
|
|
|
datastart = struct.unpack_from('<I', data, 10)[0]
|
|
_, width, height, _planes, bpp, comp, _size, _x, _y, _ncol, _nimp = \
|
|
struct.unpack_from('<IiiHHIIiiII', data, 14)
|
|
print('BMP %dx%d bpp=%d comp=%d' % (width, height, bpp, comp))
|
|
|
|
bottom_up = height > 0
|
|
H = abs(height)
|
|
row_size = ((bpp * width + 31) // 32) * 4
|
|
Bpp = bpp // 8
|
|
|
|
|
|
def px(x, y):
|
|
"""y 用图像坐标,0 = 最上面一行"""
|
|
ry = (H - 1 - y) if bottom_up else y
|
|
off = datastart + ry * row_size + x * Bpp
|
|
b, g, r = data[off], data[off + 1], data[off + 2]
|
|
return '#%02X%02X%02X' % (r, g, b)
|
|
|
|
|
|
print('\n--- scan x=%d (背景列,打印所有颜色跳变) ---' % x)
|
|
last = None
|
|
for y in range(H):
|
|
k = px(x, y)
|
|
if k != last:
|
|
print('y=%4d %7.1fpt %s' % (y, y / 3.0, k))
|
|
last = k
|