模拟网络推图—获得带网址的图片

为什么要分享这个网络推图呢,因为我们在postman测试的时候,有时候是要用上带网址的图片(实时推图测试)做测试的。这时候就需要模拟网络推图了,不是简单的本地图片测试了。

所以,我们需要启动一个推图服务。如何启动一个推图服务呢,下面代码可以实现

夸克网盘也收费了,不分享代码链接了,直接上代码吧!

#coding:utf-8

import cv2
from PIL import Image, ImageFont, ImageDraw
from gevent import monkey
from gevent.pywsgi import WSGIServer
monkey.patch_all()
from flask import Flask, request,send_file
import json,requests
import traceback
import datetime
import random
import time
import os,argparse
import numpy as np

import sys
app = Flask(__name__)


class NpEncoder(json.JSONEncoder):
    def default(self, obj):
        if isinstance(obj, np.integer):
            return int(obj)
        elif isinstance(obj, np.floating):
            return float(obj)
        elif isinstance(obj, np.ndarray):
            return obj.tolist()
        else:
            return super(NpEncoder, self).default(obj)



def resource_path(relative_path):
    """ Get absolute path to resource, works for dev and for PyInstaller """
    base_path = getattr(sys, '_MEIPASS', os.path.dirname(os.path.abspath(__file__)))
    return os.path.join(base_path, relative_path)


@app.route('/<string:images>/<string:img_dir>/<string:img_name>', methods=['get'])
def get_url_args1(images,img_dir, img_name):
    root_dir = resource_path(images)
    print('root_dir',root_dir)
    img_path = os.path.join(root_dir, img_dir, img_name)
    return send_file(img_path)


@app.route('/submit_data_sd', methods=['POST'])
def my_json():
    result =[]
    upload_file = request.files['file']
    if not upload_file:
        result = json.dumps({'code': 601, 'result': 'null', 'img_url': 'null', 'msg': '未接收到图片'}, ensure_ascii=False)

    else:
        classes = request.form.get('classes')
        if classes is None:
            classes = []
        vis_th = request.form.get('vis_thresh')
        clientIp = request.remote_addr
        receive_file = upload_file.filename
        # 年-月-日
        dayTime = datetime.datetime.now().strftime('%Y-%m-%d')
        pwd_receive = os.path.join(resource_path('images/receive') + os.path.sep +dayTime)

        #uniqueNum = time.strftime("%Y%m%d%H%M%S")  # 生成当前的时间
        # old_file_name = uniqueNum + '.jpg'
        oldname = receive_file.split('.')[0]
        new_file_name = oldname + '_res' + '.jpg'


        # 判断文件夹是否已存在
        isExists = os.path.exists(pwd_receive)
        if not isExists:
            os.makedirs(pwd_receive)

        if upload_file:
            img_name = os.path.join(pwd_receive, new_file_name)
            upload_file.save(img_name)
            print('save_img',img_name)


    return str(result)


if __name__ == '__main__':
    serverip = '10.168.1.210'
    serverport = 8005
    print("===========启动成功===============")
    print('本地IP:{} 监听端口:{}'.format(serverip,serverport))
    WSGIServer((serverip, int(serverport)), app).serve_forever()

 

那么怎么使用这个代码呢。要安装不少库的,装库请关注我其他帖子。至少要能运行python的环境。对了,我这个推图服务是在linux服务器运行的。

首先查询现有环境

conda info -e

添加图片注释,不超过 140 字(可选)

然后用source activate centernet 进入 centernet 环境

在这环境下运行代码即可。代码必须与data文件夹同目录,并且图片放在data目录下的image文件夹里面。这样,image里面的图片就可以作为网络推图测试了。

在postman,可以直接获取这张网图,注意调用的路径是服务器IP加端口8005,然后是/data/image/图片名字即可。如:http://10.168.1.210:8005/data/image/xjj .jpg

调用测试。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值