同步操作将从 OpenHarmony-SIG/python 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
"""Recognize image file formats based on their first few bytes."""from os import PathLike__all__ = ["what"]#-------------------------## Recognize image headers ##-------------------------#def what(file, h=None):f = Nonetry:if h is None:if isinstance(file, (str, PathLike)):f = open(file, 'rb')h = f.read(32)else:location = file.tell()h = file.read(32)file.seek(location)for tf in tests:res = tf(h, f)if res:return resfinally:if f: f.close()return None#---------------------------------## Subroutines per image file type ##---------------------------------#tests = []def test_jpeg(h, f):"""JPEG data in JFIF or Exif format"""if h[6:10] in (b'JFIF', b'Exif'):return 'jpeg'tests.append(test_jpeg)def test_png(h, f):if h.startswith(b'211円PNG\r\n032円\n'):return 'png'tests.append(test_png)def test_gif(h, f):"""GIF ('87 and '89 variants)"""if h[:6] in (b'GIF87a', b'GIF89a'):return 'gif'tests.append(test_gif)def test_tiff(h, f):"""TIFF (can be in Motorola or Intel byte order)"""if h[:2] in (b'MM', b'II'):return 'tiff'tests.append(test_tiff)def test_rgb(h, f):"""SGI image library"""if h.startswith(b'001円332円'):return 'rgb'tests.append(test_rgb)def test_pbm(h, f):"""PBM (portable bitmap)"""if len(h) >= 3 and \h[0] == ord(b'P') and h[1] in b'14' and h[2] in b' \t\n\r':return 'pbm'tests.append(test_pbm)def test_pgm(h, f):"""PGM (portable graymap)"""if len(h) >= 3 and \h[0] == ord(b'P') and h[1] in b'25' and h[2] in b' \t\n\r':return 'pgm'tests.append(test_pgm)def test_ppm(h, f):"""PPM (portable pixmap)"""if len(h) >= 3 and \h[0] == ord(b'P') and h[1] in b'36' and h[2] in b' \t\n\r':return 'ppm'tests.append(test_ppm)def test_rast(h, f):"""Sun raster file"""if h.startswith(b'\x59\xA6\x6A\x95'):return 'rast'tests.append(test_rast)def test_xbm(h, f):"""X bitmap (X10 or X11)"""if h.startswith(b'#define '):return 'xbm'tests.append(test_xbm)def test_bmp(h, f):if h.startswith(b'BM'):return 'bmp'tests.append(test_bmp)def test_webp(h, f):if h.startswith(b'RIFF') and h[8:12] == b'WEBP':return 'webp'tests.append(test_webp)def test_exr(h, f):if h.startswith(b'\x76\x2f\x31\x01'):return 'exr'tests.append(test_exr)#--------------------## Small test program ##--------------------#def test():import sysrecursive = 0if sys.argv[1:] and sys.argv[1] == '-r':del sys.argv[1:2]recursive = 1try:if sys.argv[1:]:testall(sys.argv[1:], recursive, 1)else:testall(['.'], recursive, 1)except KeyboardInterrupt:sys.stderr.write('\n[Interrupted]\n')sys.exit(1)def testall(list, recursive, toplevel):import sysimport osfor filename in list:if os.path.isdir(filename):print(filename + '/:', end=' ')if recursive or toplevel:print('recursing down:')import globnames = glob.glob(os.path.join(glob.escape(filename), '*'))testall(names, recursive, 0)else:print('*** directory (use -r) ***')else:print(filename + ':', end=' ')sys.stdout.flush()try:print(what(filename))except OSError:print('*** not found ***')if __name__ == '__main__':test()
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。