Prevent polluting global variables in Live Text

This commit is contained in:
AuroraWright
2024-11-11 05:56:21 +01:00
parent 85fdb6af57
commit 6590e0e17e

View File

@@ -304,7 +304,8 @@ class AppleLiveText:
else: else:
app_info = NSBundle.mainBundle().infoDictionary() app_info = NSBundle.mainBundle().infoDictionary()
app_info['LSBackgroundOnly'] = '1' app_info['LSBackgroundOnly'] = '1'
objc.loadBundle('VisionKit', globals(), '/System/Library/Frameworks/VisionKit.framework') self.VKCImageAnalyzer = objc.lookUpClass('VKCImageAnalyzer')
self.VKCImageAnalyzerRequest = objc.lookUpClass('VKCImageAnalyzerRequest')
objc.registerMetaDataForSelector( objc.registerMetaDataForSelector(
b'VKCImageAnalyzer', b'VKCImageAnalyzer',
b'processRequest:progressHandler:completionHandler:', b'processRequest:progressHandler:completionHandler:',
@@ -344,8 +345,8 @@ class AppleLiveText:
raise ValueError(f'img_or_path must be a path or PIL.Image, instead got: {img_or_path}') raise ValueError(f'img_or_path must be a path or PIL.Image, instead got: {img_or_path}')
with objc.autorelease_pool(): with objc.autorelease_pool():
analyzer = VKCImageAnalyzer.alloc().init() analyzer = self.VKCImageAnalyzer.alloc().init()
req = VKCImageAnalyzerRequest.alloc().initWithImage_requestType_(self._preprocess(img), 1) #VKAnalysisTypeText req = self.VKCImageAnalyzerRequest.alloc().initWithImage_requestType_(self._preprocess(img), 1) #VKAnalysisTypeText
req.setLocales_(['ja','en']) req.setLocales_(['ja','en'])
self.result = None self.result = None
analyzer.processRequest_progressHandler_completionHandler_(req, lambda progress: None, self._process) analyzer.processRequest_progressHandler_completionHandler_(req, lambda progress: None, self._process)