|
你缺的不是接口,而是一个好玩的 idea 。
来,出个考题,假设只用这两个接口:
可否做出什么好玩的东西?
有一台闲置的 Windows ,锁屏后会自动播放锁屏画报,像这样:
刚好女朋友喜欢唯美的句子和壁纸。能不能写个程序,每天截一张这样的壁纸用邮箱发给她呢?
用 golang ,几行代码搞定截屏。
func Capture2base64() string{
rect := screenshot.GetDisplayBounds(0)
if *scale != 1 {
rect.Max = rect.Max.Mul(*scale)
}
var img image.Image
img, err := screenshot.CaptureRect(rect)
if err != nil {
fmt.Printf("failed to capture display: %v\n", err)
return ""
}
if *scale != 1 {
img = resize.Resize(uint(img.Bounds().Dx()/(*scale)), 0, img, resize.Lanczos3)
}
buf := new(bytes.Buffer)
err = jpeg.Encode(buf, img, nil)
return base64.StdEncoding.EncodeToString(buf.Bytes())
}对于一个追求完美的人,只发图片没有图上的文案怎么能行。可以用文字识别 api 把唯美的句子提取出来。
调用 api 这种事,Python 擅长:
OCR_URL = "https://aip.baidubce.com/rest/2.0/ocr/v1/accurate_basic"
def request(url, data):
''' 调用 OCR api
'''
req = Request(url, data.encode('utf-8'))
has_error = False
try:
f = urlopen(req)
result_str = f.read()
if (IS_PY3):
result_str = result_str.decode()
return result_str
except URLError as err:
print(err)
def getText(image64):
'''从图片中识别出文字
'''
token = fetch_token()
# 拼接通用文字识别高精度url
image_url = OCR_URL + "?access_token=" + token
text = ""
# 调用文字识别服务
result = request(image_url, urlencode({'image': image64}))
# 解析返回结果
result_json = json.loads(result)
for words_result in result_json["words_result"]:
text = text + words_result["words"]
# 返回识别的文字
return text这样就完了?
如果截屏截到重复的壁纸怎么办?作为一个追求完美的人,怎么能忍。
把识别的出的文字和图片都存起来,发送前提前匹配下是否发送过。然后就可以用各家都提供的邮件发送 api 发宋给你的小可爱了:
m := gomail.NewMessage()
m.SetHeader("From", "931918906@qq.com")
m.SetHeader("To", *mailTo)
m.SetHeader("Subject", filename)
m.Embed(filename)
m.SetBody("text/html", "<img src=\"cid:"+filename+"\" />")
d := gomail.NewPlainDialer("smtp.qq.com", 587, "931918906@qq.com", "myPassword")
if err := d.DialAndSend(m); err != nil {
fmt.Printf("failed to send mail: %v\n", err)
}
if err := os.Remove(filename); err != nil {
fmt.Printf("failed to remove %s: %v\n", filename, err)
}甚至,你还能每天自动发送一条不重复还创意满满的微博呢。比如这样:
怎么样,好玩么?
如果你喜欢我们的内容,欢迎关注公众号「Authing 身份云」和访问我们的官网,更多有趣的内容等你来看~ |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|