49 lines
1.5 KiB
Python
49 lines
1.5 KiB
Python
import sys
|
|
import io
|
|
|
|
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
|
|
|
|
from PIL import Image
|
|
|
|
img = Image.open(r"D:\Yuzu-GCA\screen_fixed.png")
|
|
print(f"Format: {img.format}")
|
|
print(f"Size: {img.size}")
|
|
print(f"Mode: {img.mode}")
|
|
|
|
# Try OCR
|
|
try:
|
|
import pytesseract
|
|
text = pytesseract.image_to_string(img, lang='eng+chi_sim')
|
|
print("\n=== pytesseract OCR result ===")
|
|
print(text)
|
|
except ImportError:
|
|
print("pytesseract not available")
|
|
|
|
# Also try Windows OCR
|
|
try:
|
|
import asyncio
|
|
from winsdk.windows.media.ocr import OcrEngine
|
|
from winsdk.windows.graphics.imaging import BitmapDecoder, SoftwareBitmap
|
|
from winsdk.windows.storage.streams import RandomAccessStreamReference
|
|
from winsdk.windows.globalization import Language
|
|
import os
|
|
|
|
async def ocr_windows():
|
|
engine = OcrEngine.try_create_from_user_profile_languages()
|
|
if not engine:
|
|
engine = OcrEngine.try_create_from_language(Language("en"))
|
|
|
|
path = os.path.abspath(r"D:\Yuzu-GCA\screen_fixed.png")
|
|
file_stream = await RandomAccessStreamReference.create_from_file(path).open_read_async()
|
|
decoder = await BitmapDecoder.create_async(file_stream)
|
|
bitmap = await decoder.get_software_bitmap_async()
|
|
|
|
result = await engine.recognize_async(bitmap)
|
|
print("\n=== Windows OCR result ===")
|
|
for line in result.lines:
|
|
print(line.text)
|
|
|
|
asyncio.run(ocr_windows())
|
|
except Exception as e:
|
|
print(f"Windows OCR failed: {e}")
|