python怎么调用dll文件_python3调用dll文件

ocr.dll是一个验证码识别的动态链接库

这个文件如果是32位编译的,必须用32位的python调用。

暂时不会用java调用,只能用python写个接口然后在java代码中调用。

python代码调用dll文件示例

import ctypes

import os

filePath = "D:/test.jpg"

if os.path.exists(filePath):

with open(filePath, 'rb') as f:

bytes_all = f.read()

f.close()

len_b = len(bytes_all)

pDll = ctypes.WinDLL('ocr.dll')

pDll.init()

check_code_addr = pDll.ocr(bytes_all, len_b)

value = ctypes.string_at(check_code_addr, -1)

print(value.decode('utf-8'))

用Flask将上面的代码包装成接口

from flask import Flask, jsonify

from flask import request

import ctypes

import base64

import os

app = Flask(__name__)

@app.route('/captcha', methods=['POST'])

def check_captcha():

img_data = request.form['img']

if img_data:

img_byte = base64.b64decode(img_data)

# file_paths = "receive.jpg"

# with open(file_paths, "wb") as f:

# f.write(img_byte)

check_code_addr = pDll.ocr(img_byte, len(img_byte))

value = ctypes.string_at(check_code_addr, -1)

return value.decode('utf-8')

return "error"

@app.route("/file", methods=['POST'])

def check_captcha_img():

upload_file = request.files['img']

if upload_file:

# file_path = ""

# file_paths = os.path.join(file_path, upload_file.filename)

# upload_file.save(file_paths)

bytes_all = upload_file.read()

upload_file.close()

# 必须定义一个变量

len_b = len(bytes_all)

check_code_addr = pDll.ocr(bytes_all, len_b)

value = ctypes.string_at(check_code_addr, -1)

return value.decode('utf-8')

return "error"

@app.route("/get_my_ip", methods=["GET"])

def get_my_ip():

return jsonify({'ip': request.remote_addr}), 200

if __name__ == '__main__':

pDll = ctypes.WinDLL('ocr.dll')

pDll.init()

print("\n")

app.run()

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值