Closed karim23657 closed 8 months ago
@vitalets , I found this code , good starter idea to develop it :
import json
import requests
import base64
import os
def guess_type(image_path):
# Get the file extension from the image path
ext = os.path.splitext(image_path)[1].lower()
# Map the extensions to the mimetypes
mimetypes = {
".jpg": "image/jpeg",
".jpeg": "image/jpeg",
".png": "image/png"
}
# Return the mimetype if it exists, otherwise return None
return mimetypes.get(ext, None)
def load_image_as_base64(image_path):
with open(image_path, 'rb') as f:
image_bytes = f.read()
# Convert image bytes to base64 string
base64_string = base64.b64encode(image_bytes).decode('utf-8')
mimetype = guess_type(image_path)
# Return image data in the specified format
return [base64_string, mimetype]
_imageObj = load_image_as_base64('124+958.png')
_RPCIDS = "WqWDPb"
params = {
'rpcids': _RPCIDS,
'bl': 'boq_translate-webserver_20240115.08_p0',
'soc-app': 1,
'soc-platform': 1,
'soc-device': 1,
'rt': 'c'
}
data = {'f.req': json.dumps([[
[_RPCIDS,
json.dumps([_imageObj,"auto","fr"], separators=(',', ':')),
None,
"generic"]
]], separators=(',', ':')),
}
TRANSLATEURL = 'https://translate.google.com/_/TranslateWebserverUi/data/batchexecute'
response = requests.request("POST", TRANSLATEURL,
data=data,
params=params,
)
then i use bellow code to get translated image :
import base64
def convert_base64_to_image(base64_string, image_path):
# Convert base64 string to image bytes
image_bytes = base64.b64decode(base64_string)
# Write the image bytes to a file
with open(image_path, 'wb') as image_file:
image_file.write(image_bytes)
b = response.text.split('\n')
li_filter = []
flag = False
for _b in b:
if _b.isnumeric():
flag = not flag
_b = '==='
if flag:
li_filter.append(_b)
li_data = json.loads(li_filter[1])
resp_img_data =json.loads(li_data[0][2])
res_img_data=resp_img_data[0]
f_mimetypes = {
"image/jpg": ".jpg" ,
"image/jpeg" :".jpeg",
"image/png" : ".png"
}
convert_base64_to_image(res_img_data[0], 'out'+f_mimetypes[res_img_data[1]])
Thanks for sharing, looks like Google can translate images!
@vitalets It returns same image that you send without any translation
This library uses Google API that can only translate text. To translate image you need first to extract text from image using some third-party tool and then pass it this lib.