目录
- 1. 作者介绍
- 2. 艺术二维码
- 2.1 艺术二维码的作用
- 2.2 艺术二维码的应用场景
- 2.3调用万维易源API生成AI艺术二维码
- 3. 实验过程
- 3.1算法流程
- 3.2完整代码
- 3.3测试结果
1. 作者介绍
韩阳,男,西安工程大学电子信息学院,2023级研究生
研究方向:贝叶斯网络结构学习
电子邮件:Hyang_h@163.com
吴天禧,女,西安工程大学电子信息学院,2023级研究生,张宏伟人工智能课题组
研究方向:模式识别与智能系统
电子邮件:230411046@stu.xpu.edu.cn
2. 艺术二维码
艺术二维码(Artistic QR Code)是在传统二维码的基础上,通过艺术化的设计和颜色丰富,结合品牌或个人风格的元素创造出的一种新型二维码。艺术二维码在实用性和美观性之间取得了平衡。
2.1 艺术二维码的作用
-
增强品牌识别:通过将企业标识、口号、颜色或产品形象等元素融入二维码设计,可以强化品牌视觉效果和辨识度。
-
吸引目光:创意和颜色丰富的设计使艺术二维码相较于传统黑白二维码更能吸引人们的关注。
-
提升用户体验:艺术二维码常常引起用户的好奇心,可能提高用户扫码的意愿,从而增加交互的机会。
-
营销和宣传:艺术二维码可以用于商品包装、广告、商店展示或名片等,作为营销工具对产品进行推广。
-
展现文化和艺术价值:一些设计师会将二维码融入艺术作品中,使二维码自身也成为一种艺术的表达方式。
-
个性化表达:对于个人来说,定制化的艺术二维码可以展示个人品味、情感或所属社群。
艺术二维码将功能性和艺术性结合在一起,不仅提供了信息的快速传递功能,同时也增加了视觉上的享受和品牌传播的附加价值。
2.2 艺术二维码的应用场景
-
营销和广告:艺术二维码可以用于产品广告、促销活动、品牌推广等。通过将艺术元素融入二维码中,可以吸引用户的注意力,提高品牌曝光度。
-
文化艺术展览:在艺术展览中使用艺术二维码可以为观众提供更多的信息和互动体验。观众可以通过扫描艺术二维码,获取艺术品的详细介绍、创作背景、艺术家信息等。
-
产品包装和标识:将艺术二维码应用于产品包装和标识上,可以增加产品的美感和独特性。用户可以通过扫描艺术二维码,获取产品相关的信息、使用说明、售后服务等。
-
教育和学习:艺术二维码可以应用于教育领域,为学生提供更加有趣和互动的学习体验。教师可以在教材、课件等教学资料中加入艺术二维码,学生可以通过扫描二维码获取相关的学习资源、视频讲解、在线测试等。
-
旅游和景点导览:在旅游景点中使用艺术二维码可以为游客提供更加丰富和个性化的导览服务。游客可以通过扫描艺术二维码,获取景点的介绍、历史文化背景、导览地图等。
-
数字艺术展示:艺术二维码可以应用于数字艺术展示,将艺术作品与数字技术相结合。观众可以通过扫描艺术二维码,欣赏艺术作品的展示、艺术家的创作理念等。
2.3调用万维易源API生成AI艺术二维码
1、进入万维易源官网(https://www.showapi.com/),注册账号并登陆。
2、选择0元后点击立即购买。有效期为1个月,共有20次免费调用的机会。
3、购买成功后,点击查看资源包
4、点击我的应用,复制 AppId,在 Secret 处点击查看
5、查看 Secret 需要重新输入注册账号的密码。
6、在购买下面有一个产品说明,可以看到一些生成的二维码效果展示;扫一扫可以直达对应url的链接。
7、购买链接下面有一个接口文档选项,这个文档包含四个部分。
8、创建艺术二维码部分的部分请求参数与返回参数。
9、创建艺术二维码部分的最下面有请求示例与返回示例
10、下载后得到一个压缩包。注意:解压后文件夹一定要和代码文件夹在一个目录中。
3. 实验过程
3.1算法流程
1、实例化ShowapiRequest类:
首先,创建ShowapiRequest类的实例。这一步通常涉及到指定API的URL和必要的认证信息,如API密钥。
示例代码:ShowapiRequest request = new ShowapiRequest(“API_URL”, “YOUR_APPID”, “YOUR_SECRET”);
2、添加请求参数:
接下来,根据API的要求,向请求中添加必要的参数。这些参数可以是查询字符串、路径参数或者是POST请求体中的数据。
示例代码:request.addTextPara(“paramName”, “paramValue”);
3、发送HTTP POST请求:
紧接着,使用设置好的请求实例发送HTTP POST请求。在这一步中,程序会与API服务器建立连接,提交请求,并等待服务器的响应。
示例代码:String response = request.post();
4、接收和处理响应:
最后,处理API的响应。这通常包括解析响应数据(通常是JSON或XML格式),以及基于这些数据实施逻辑处理。
响应处理包括:检查响应状态码来确定请求是否成功,解析响应体的数据以获取所需信息,以及处理任何可能的错误或异常情况。
3.2完整代码
import requests
import qrcode
from urllib import parse
#全局请求头
files = {}
headers = {}
body = {}
timeouts = {}
resHeader = {}
class ShowapiRequest:
def __init__(self, url, my_appId, my_appSecret):
self.url = url
self.my_appId = my_appId # 应用程序的 appID ,这里不需要修改,在trian.py中修改即可
self.my_appSecret = my_appSecret # 应用程序的 appSecret
body["showapi_appid"] = my_appId
body["showapi_sign"] = my_appSecret
headers["User-Agent"] = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2427.7 Safari/537.36"
def addFilePara(self, key, value_url):
files[key] = open(r"%s" % (value_url), 'rb')
return self
def addHeadPara(self, key, value):
headers[key] = value
return self
def addBodyPara(self, key, value):
body[key] = value
return self
#设置连接时间和读取时间
def setTimeout(self, connecttimout, readtimeout):
timeouts["connecttimout"] = connecttimout
timeouts["readtimeout"] = readtimeout
return self
def get(self):
get_url = self.url + "?" + parse.urlencode(body)
if not timeouts:
res = requests.get(get_url, headers=headers)
else:
timeout = (timeouts["connecttimout"], timeouts["readtimeout"])
res = requests.get(get_url, headers=headers, timeout=timeouts)
return res
def post(self):
if not timeouts:
res = requests.post(self.url, files=files, data=body, headers=headers)
else:
timeout = (timeouts["connecttimout"], timeouts["readtimeout"])
res = requests.post(self.url, files=files, data=body, headers=headers, timeout=timeout)
return res
from ShowapiRequest import ShowapiRequest
r = ShowapiRequest("http://route.showapi.com/3040-1","1590853","bbab2bb4b50e415d88c6f851cdcab7c4" )
r.addBodyPara("text","https://u.wechat.com/MLlqQKhpMA_28-YGAb4Q8hY")
r.addBodyPara("qr_code_url", "https://u.wechat.com/MLlqQKhpMA_28-YGAb4Q8hY")
r.addBodyPara("style_id","shop_flower")
r.addBodyPara("call_back","")
r.addBodyPara("batch_size","1")
r.addBodyPara("use_short_link","1")
r.addBodyPara("composition_ratio","1:1")
r.addBodyPara("qr_code_base64","")
r.addBodyPara("position","center")
r.addBodyPara("qr_format","block_ex")
res = r.post()
print(res.text) # 返回信息
3.3测试结果
将生成的test_id复制到任务进度查询后等待大概1-3分钟后查看result list中的链接,复制到浏览器可查看到生成的艺术二维码。